一、介绍
| 策略模式 | 封装可以互换的行为, 并使用委托来决定要使用哪一个 |
| 命令模式 | 封装请求成为对象 |
| 模板方法 | 由子类决定如何实现算法中的某一步 |
| 组合模式 | 客户可以用一致的方法对象集合和单个对象 |
| 适配器 | 封装对象,并提供不同的接口 |
| 装饰器 | 包装一个对象,以提供新的行为 |
| 外观模式 | 简化一群类的接口 |
| 迭代器 | 在对象集合之间游走,而不暴露集合的实现 |
| 代理模式 | 包装对象,以控制对此对象的访问 |
| 观察者 | 让对象能够在状态改变时被通知 |
| 单件 | 确保有且只有一个对象被创建 |
| 状态模式 | 封装了基于状态的行为,并使用委托在行为之间切换 |
| 抽象工厂 | 允许客户创建对象的家族,而无需指定他们的具体类 |
| 工厂方法 | 由子类决定要创建的具体类是哪一个 |
二、分类
| 结构型 |
适配器模式 代理模式 组合模式 外观模式 装饰模式 |
| 创建型 |
单件 抽象工厂 工厂方法 |
| 行为型 |
模板方法 命令模式 迭代器 观察者 状态模式 策略模式 |