HeadFirst:设计模式-命令模式,适配器模式,外观模式

1.命令模式

命令模式(Command Pattern):

将“请求”封装为对象,以便使用不同的请求,队列或者日志来参数化其他对象。

命令模式也支持可撤销的操作。

命令模式将发出请求的对象和执行请求的对象解耦。

调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用。

2.适配器模式

适配器模式(Adapter Pattern):

将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

将一个类或多个类的接口编程客户所期望一个接口。

适配器模式包含两种:类适配器,对象适配器,分别对应继承,组合实现。

类适配器如下所示。

HeadFirst:设计模式-命令模式,适配器模式,外观模式

对象适配器如下所示。

HeadFirst:设计模式-命令模式,适配器模式,外观模式

3.外观模式

模式定义

外观模式(Facade Pattern):

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

外观模式的目的:使接口更简单

提供子系统一个简化接口。

设计原则

  • 最少知识原则:只和你的密友谈话。

最少知识原则(Least Knowledge)告诉我们要 减少对象之间的交互。

最少知识原则的规则,调用属于以下范围的方法。

  •  该对象本身
  • 被当做方法的参数而传递进来的 对象
  • 此方法所创建或实例化的任何对象
  • 对象的任何组件

4.模式对比

装饰者模式,适配器模式,外观模式区别如下。

装饰者模式:  不改变接口,但假如责任。

适配器模式: 将一个接口转成另一个接口。

外观模式:让接口更简单。

外观和适配器可以包装许多类,但外观的意图是简化接口,而适配器的意图是转化成不同接口。