第三周 代码重构 学习笔记
1. 设计模式:使用设计模式优化排序工具包的设计
什么是设计模式
为解决反复出现的一种问题而总结的可重复使用的的通用解决方案
设计模式组成
名称:少量字组成,用于表达设计模式
待解问题:何时需要用到设计模式,以及运用设计模式的环境
解决方案:组成设计模式的元素(类和对象)、关系、职责以及合作
结论:对系统弹性、扩展性、可移植性等方面的影响
设计模式分类
功能上
创建模式:对类的实例化过程的抽象
结构模式:将类或者对象结合在一起形成更大的结构
行为模式:对在不同的对象之间划分责任和算法的抽象化
方式上
类模式:以继承的方式实现模式,静态的
对象模式:以组合的方式实现模式,动态的
简单工厂模式
改进为动态配置方式,对client和factory满足ocp
2. 设计模式:Singleton单例模式
单例模式
性能上,减少频繁创建和销毁实例带来的资源消耗
功能上,多个用户使用同一个实例可以统一控制
适配器模式
定义一个适配器类,适配现有类以满足新的要求
类适配器:继承被适配类,实现新功能接口
对象适配器:组合被适配类,实现新功能接口
3. JUnit中的设计模式
模板方法模式
通过继承方式扩展功能。基类负责骨架,子类负责具体实现
形式
抽象方法:强制子类实现
具体方法:子类可以使用和覆盖
钩子方法:用于特定时机使用,缺省空的实现,子类可以覆盖
策略模式
通过组合方式扩展功能
将使用策略的人与策略的具体算法分离
组合模式
使用树形结构来组合一组相似而有层次的对象
装饰器模式
在不改变对客户端的接口的前提下,扩展现有对象的功能,形成一条链
4. Spring中的设计模式
依赖注入与控制反转
不需要自己创建被依赖的对象,而是声明依赖关系,然后由外部注入
单例模式
由容器管理创建对象
MVC模式
通过控制器对视图和模型分离
5. 设计模式案例:Intel大数据SQL引擎&Panthera设计模式
单一职责、代码复用、易于扩展、团队协作开发
申明:本文图片部分来自网络和李智慧老师课件
版权声明: 本文为 InfoQ 作者【应鹏】的原创文章。
原文链接:【http://xie.infoq.cn/article/aed67f284d8754de03f8d2982】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论