HeadFirst:设计模式-命令模式,适配器模式,外观模式
1.命令模式
命令模式(Command Pattern):
将“请求”封装为对象,以便使用不同的请求,队列或者日志来参数化其他对象。
命令模式也支持可撤销的操作。
命令模式将发出请求的对象和执行请求的对象解耦。
调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用。
2.适配器模式
适配器模式(Adapter Pattern):
将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
将一个类或多个类的接口编程客户所期望一个接口。
适配器模式包含两种:类适配器,对象适配器,分别对应继承,组合实现。
类适配器如下所示。
对象适配器如下所示。
3.外观模式
模式定义
外观模式(Facade Pattern):
提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
外观模式的目的:使接口更简单
提供子系统一个简化接口。
设计原则
- 最少知识原则:只和你的密友谈话。
最少知识原则(Least Knowledge)告诉我们要 减少对象之间的交互。
最少知识原则的规则,调用属于以下范围的方法。
- 该对象本身
- 被当做方法的参数而传递进来的 对象
- 此方法所创建或实例化的任何对象
- 对象的任何组件
4.模式对比
装饰者模式,适配器模式,外观模式区别如下。
装饰者模式: 不改变接口,但假如责任。
适配器模式: 将一个接口转成另一个接口。
外观模式:让接口更简单。
外观和适配器可以包装许多类,但外观的意图是简化接口,而适配器的意图是转化成不同接口。