可变部分:考虑想要什么变化却又不会引起重新设计
创建型
- Abstract Factory (对象):产品对象家族
- Factory Method:被实例化的子类
- Builder (对象):如何创建一个组合对象
- Prototype (对象):被实例化的类
- Singleton (对象):一个类的唯一实例
结构型
- Adapter (类 & 对象):对象的接口
- Bridge (对象):对象的实现
- Composite (对象):一个对象的结构和组成
- Decorator (对象):对象的职责,不生成子类
- Facade (对象):一个子系统的接口
- Flyweight (对象):对象的储存开销
- Proxy (对象):如何访问一个对象,该对象的位置
行为型
- Interpreter (类):一个语言的文法及解释
- Template Method (类):算法中的有些步骤
- Chain of Responsibility (对象):满足一个请求的对象
- Command (对象):何时,怎样满足一个请求
- Iterator (对象):如何遍历,访问一个聚合的各元素
- Mediator (对象):对象间怎样交互,和谁交互
- Memento (对象):一个对象中哪些私有信息存放在该对象之外,以及在什么时候进行存储
- Observer (对象):多个对象依赖于另一个对象,而这些对象又如何保持一致
- State (对象):对象的状态
- Strategy (对象):算法
- Visitor (对象):某些可作用于一个(组)对象上的操作,但不修改这些对象类