第三周学习总结
设计原则:单一职责、开闭原则、里氏替换原则、接口分离原则、依赖倒置原则
什么是设计模式?
每一种问题通用解决方案。这种问题在我们的环境中,不停的的出现
设计模式是一种可重复使用的解决方案
设计模式的四个部分:模式名称、待解决问题、解决方案、结论
设计模式的划分
从功能划分
创建模式
对类的实例化过程
结构模式
将类或者对象结合在一起形成的更强大的结构
行为模式
对不同的对象之间划分责任和算法的抽象化
从方式分
类模式
以继承的方式实现模式,静态的
对象模式
以组合方式实现模式,动态的
策略模式的使用:
什么时候用:系统在设计是需要使用多种算法的一种,系统重构时将条件语句转换成对策略的多态性调用
优点:将使用策略的人和策略的实现分开、策略对象可以自由的组合
缺点:策略模式仅仅封装了“算法的实现”,方便添加和替换算法。但它并不关心何时使用何种算法,这个必须有客户端来决定
装饰器模式
是一种对象结构模式
作用
在不改变对客户端的接口的前提下(对客户端透明)
扩展现有功能
装饰器与模式模板方法、策略模式比较
装饰器保持对象的功能不变,扩展外围的功能
模板方法和策略模式则保持算法的框架不变,扩展其内部的功能
装饰器和继承的比较
都可以来扩展对象的功能
但装饰器是动态的,继承是静态的
装饰器可以任意组合
但这也是装饰器更复杂,有可能会组合出荒谬的结果
装饰器的应用
java serlet的应用
HttpServletRquest/HttpServletRequestWrapper
HttpServletResponse/HttpSevletResponseWrapper
同步优化器
Collection.synchronizedList(list)
取代原来的Vector/Hashtable
Java IO类的实现
InputStream/OutPutStream -代表byte流
Reader/Writer - 代表char(Unicode字符流)
流的对称性
输入-输出对称
Byte-char对称
因此我们只要学校任意一种流,就可以基本了解其它所有的流
版权声明: 本文为 InfoQ 作者【嘻哈】的原创文章。
原文链接:【http://xie.infoq.cn/article/d7f101651114d75d8815d19e3】。未经作者许可,禁止转载。
评论