Head First 模式之间的对比

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