-
创建型
-
工厂方法模式
- 工厂基类不变
-
抽象工厂模式
- 产品族
-
单例模式
- 只允许类创建一个实例
-
原型模式
- 克隆对象,C#和Java内置支持
-
生成器模式
- 生成过程相同,结果不同
-
注意
- 设计模式只是工具
- 设计模式代码更高级语言的发展方向
- 设计模式说明现今高级语言的缺陷
- 现实中一切以实际需要为准,没有纯粹的设计模式
- 有些模式已经内置实现
- 基础就是面向对象,继承和多态
-
结构型
-
适配器模式
- 利于接口转换和调整
-
桥接模式
- 将抽象化与实现化脱耦,多维独立变化,毛笔/水彩笔
-
组合模式
- 部分-整体层次结构
-
装饰模式
- 不修改原始类进行动态扩展,引用包含而不是继承
-
外观模式Facade
- 封装子系统,变复杂为简单
-
轻量级模式
- 享元模式,大量相似对象共享同一个元类
-
代理模式
- 为原本不能或不便的问题提供代理
-
行为型
-
责任链模式
- 责任传递
-
命令模式
- 请求者和执行者独立
- 解释器模式
-
中介者模式
- 封装多个对象间的交互,减少相互引用,QQ群
- 迭代模式
-
观察者模式
- 发布者包含订阅者的引用
- 备忘录模式
- 状态模式
-
策略模式
- Context根据不同的IStrategy实例初始化
- 访问者模式
- 模版方法模式