02 2018 档案
摘要:非空校验一直是一个麻烦的问题,此模式可以稍微缓解 例: 增加一个NullAnimal 这样在Person类中就不需要“animal!=null”这句话了,疑问我们提供了一个实现接口的所有方法,不会再产生null对象。 animal对象可能由MVC框架映射产生,我们只要定义一个默认的映射对象是Null
阅读全文
摘要:No1: 单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。 No2: 在类中调用其他类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则 No3: 如果子类不
阅读全文
摘要:需求:设计一个MVC框架 (以下可能摘要不全,后期整理) 架构图: * 核心控制器:MVC框架入口,负责接收和反馈HTTP请求 * 过滤器:Servlet容器内的过滤器,实现对数据的过滤处理 * 拦截器:对进出模型的数据进行过滤,不依赖系统容器,只过滤MVC框架内的业务数据 * 模型管理器:提供一个
阅读全文
摘要:创建类模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式。 其中单例模式要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新的对象。 【工厂方法(抽象工厂) VS 建造者模式】 共产方法模式关注的是一个产品整体,但在建造者模式中,一个具体产品的产生是依赖各个部件的产生以
阅读全文
摘要:接上篇《设计模式之禅》--备忘录扩展:clone方式的备忘录 需求:对象全状态备份方案 发起人 BeanUtils工具类 备忘录角色 调用 结果 初始化状态 state1=中国stat2=强盛state3=繁荣 修改后状态 state1=软件stat2=架构state3=优秀 恢复后状态 state
阅读全文
摘要:接上篇《设计模式之禅》--策略扩展:策略枚举 需求:使用clone方式实现备忘录模式 发起人角色 备忘录管理员角色 上面两项合并 调用 结果 初始状态是:初始状态...修改后状态是:修改后的状态...恢复后状态是:初始状态 注意: 使用Clone方式的备忘录模式,可以使用在比较简单的场景或者比较单一
阅读全文
摘要:接上篇《设计模式之禅》--代理扩展:动态代理 需求:加减法计算 调用 关键 Calculator.ADD.exec(a, b)
阅读全文
摘要:No1: 网络传输应用通常使用TCP、IP或UDP这三种协议实现数据传输。在传输数据的过程中,需要通过一个双向的通信连接实现数据的交互。在这个传输过程中,通常将这个双向链路的一端称为Socket,一个Socket通常由一个IP地址和一个端口号来确定。 No2: 在网络编程中有两个主要的问题,一个是如
阅读全文
摘要:接上篇《设计模式之禅》--代理扩展:强制代理 动态代理就是在实现阶段不用关心代理谁,而在运行阶段才指定代理哪一个对象。相对来说,自己写代理类的方式就是静态代理 面向切面编程(AOP)核心就是采用了动态代理机制 调用 结果 拓展: 调用
阅读全文
摘要:接上篇《设计模式之禅》--工厂方法扩展:实现单例 需求:就算你找到真实角色,也强制你使用指定代理 第一次尝试 结果 第二次尝试 结果 第三次尝试 结果
阅读全文
摘要:接上篇《设计模式之禅》--单例扩展:多例模式 需求:使用工厂方法模式实现单例模式 利用反射创建单例对象 还可以扩展单例构造器
阅读全文
摘要:需求:一个类只能产生两三个对象 运行结果如下
阅读全文
摘要:参考文档: 简明理解三次握手和四次挥手 TCP三次握手与四次挥手过程 No1: 为什么要三次握手? 答:三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收机能正常。 第一次握手:Client什么都不能确认;Server
阅读全文
摘要:No1: 客户端与服务器的交互流程: 1)客户端执行网络请求,从URL中解析出服务器的主机名 2)将服务器的主机名转换成服务器的IP地址 3)将端口号从URL中解析出来 4)建立一条从客户端与Web服务器的TCP连接 5)客户端通过输出流向服务器发送一条HTTP请求 6)服务器向客户端回送一条HTT
阅读全文
摘要:第一步: 第一层:Request--请求类型,JSON,字符串,文件 第二层:消息队列--维护了提交给网络框架的请求列表,并且根据响应的规则进行排序。默认情况下按照优先级和进入队列的顺序来执行,该队列使用的是线程安全的PriorityBlockingQueue<E>,因为我们的队列会被并发访问,因此
阅读全文
摘要:No1: 例如:http://www.*****.com/china/index.htm 1)http:// 代表超文本传送协议,通知*****.com服务器显示web页,通常不用输入 2)www 代表一个web(万维网)服务器 3)*****.com/ 这是装有网页的服务器的域名,或站点服务器的名
阅读全文
摘要:接上篇《计算机网络》读书笔记(一)--计算机网络体系结构 No1: 网络层与IP协议配套使用的还有四个协议: 1)地址解析协议ARP(Address Resolution Protocol) 2)逆地址解析协议RARP(Reverse Address Resolution Protocol) 3)网
阅读全文
摘要:最近翻出大学的教材《计算机网络(谢希仁版)》看一看,网络基础还是很重要的。 No1: OSI的七层协议体系结构的概念清除,理论也较完整,但它既复杂又不实用。 TCP/IP体系结构则不同,但它现在却得到了非常广泛的应用。TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(用网际
阅读全文
摘要:插值器:就是一个函数,将时间t经过一个函数的变换映射到t',从而影响动画的运动轨迹和速度变化 如何实现一个插值器 使用
阅读全文
摘要:字体适配 软键盘适配 三星手机camera拍照的bug: 1)摄像头拍照后图片数据不一定能返回;onActivityResult的data为空 2)三星的camera强制切换到横屏,导致Activity重启声明周期(但是部分机型android:configChanges也不能阻止横竖屏切换) 3)A
阅读全文
摘要:适配相关术语: 分辨率:eg:480*800,1280*720。表示物理屏幕区域内像素点的总和(切记:跟屏幕适配没有任何关系)因为我们既可以把1280*720的分辨率做到4.0的手机上面。我也可以把1280*720的分辨率做到5.0英寸的手机上面,如果分辨率相同,手机屏幕越小越清晰 px(pix):
阅读全文
摘要:软键盘有时会导致页面布局体验差,解决方法之一是最外层嵌套ScrollView,马马虎虎,下面是最优解 原文地址软键盘适配 工具类 清单文件配置 activity调用
阅读全文
摘要:几种常见解决消息即时获取方案 1)轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息 2)SMS(短信消息)(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受 3)持久连接(Push)方式:客户端和服务器之间建
阅读全文