| 模式 | 意图 | 应用变化 |
|---|---|---|
| 装饰者模式 | 包装另一个对象,并提供额外的行为 | 让新行为加入类中而无须修改现有代码 |
| 适配器模式 | 包装另一个对象,并提供不同的接口 | 允许客户使用新的库和子集合,无须改变接口代码,由适配器将变化封装起来 |
| 外观模式 | 包装许多对象,以简化他们的接口。 | |
| 代理模式 | 包装另一个对象,并提供对它的访问 |
| 模式 | 意图 | 做法 |
|---|---|---|
| 状态模式 | 封装基于状态的行为,并将行为委托给当前状态 | Context会随着时间而改变状态,而任何的状态改变都是定义好的 |
| 策略模式 | 将可以互换的行为封装起来,然后使用委托的方法,决定使用哪一个行为 | 控制Context使用什么策略,没有一组定义良好的状态转换。 |
| 模版方式模式 | 由子类决定如何实现算法中的某些步骤 |