架构师养成第三课
灵活运用设计模式进行代码优化和重构
什么是设计模式
1,每一种模式都描述了一种问题的通用解决方案。这种问题在我们环境中经常出现。 2,可重复使用的解决方案
设计模式的组成
模式的名称 - 概括表达设计(Observer, Adapter 等)
待解问题 - 描述了合适需要运用这种模式,以及运用模式的上下文
解决方案 - 抽象描述了元素及其之间的关系
结论 - 使用这种方案的利弊。主要包括对系统弹性,扩展性和可移植性的影响
重点思考设计模式解决了什么问题
设计模式的分类
从功能分
创建模式 - 对类的实例化过程进行抽象
结构模式 - 将类或者对象结合在一起形成更大的结构
行为模式 - 对在不同对象之间划分责任和算法的抽象化
从方式分
类模式 - 以继承的方式实现模式,静态的
对象模式 - 以组合的方式实现模式,动态的
重要设计模式
单例模式
价值提升性能满足特定需求(某种资源)
实现饿汉模式 - 直接初始化静态变量懒汉模式 - 实际使用时创建,使用同步锁保证不重复创建
对外提供服务,无状态
简单工厂模式
使用工厂模式创建职责类似的类
可以使用配置文件的方式,确保调用方和工厂类都满足开闭原则
适配器模式
针对类的适配器,继承和实现对应的类和接口
针对对象的适配器,实现对应的接口,组合对应的类
模板模式
在父类中定义和实现逻辑框架,真正的业务逻辑是个抽象方法
在子类中必须实现业务逻辑抽象方法,利用多态减少代码量
策略模式
调用方针对接口编写逻辑
若干个类实现了相同的接口
依赖的对象由运行时按实际需求传入
组合模式
用于组织树形关系的对象
这些对象都实现了统一的抽象类或接口
对象分为叶子节点和容器节点
例如 draw 窗体中的所有 widget
装饰器模式
用组合的方式引入实现了同样接口的对象
接口方法中,先实现自身逻辑,再调用组合对象的接口
版权声明: 本文为 InfoQ 作者【万有引力】的原创文章。
原文链接:【http://xie.infoq.cn/article/92d8d15e5c9539be94c6c9077】。未经作者许可,禁止转载。
评论