命令模式和适配器模式之间的区别

Difference Between Command and Adapter Patterns

在适配器模式中,我们将一个对象的接口更改为另一个接口,以便从另一个接口使用它。

在 Command 模式中,我们将对象的接口更改为通用的 Command 接口,提供一个 execute 方法来调用完成该工作的实际方法。这不是适配器模式已经做的完全一样的事情吗?那么命令模式有什么意义呢?

Command 设计模式用于解决以下问题:
- 如何使用请求配置(自定义)对象?
- 以及如何在 运行 时间动态地(ex)更改请求?

Command 的要点是将请求与其调用者分离 并将其封装在一个单独的对象(命令接口)中。
然后,调用程序将请求动态委托给命令对象。

Adapter 设计模式(对象适配器)用于解决如下问题:
- 如何访问具有不兼容接口的对象
不改变现有接口?

Adapter 的要点是通过一个单独的对象来工作 适应不兼容的接口,即实现我们需要的 接口(目标)(通过委托)不兼容的接口。

Command 模式与 Strategy 模式更相似, 它将算法与其上下文解耦并将其封装 在一个单独的对象(策略)中。

进一步讨论参见GoF Design Patterns Memory学习 面向对象设计与编程 在 http://w3sdesign.com.