命令模式和适配器模式之间的区别
Difference Between Command and Adapter Patterns
在适配器模式中,我们将一个对象的接口更改为另一个接口,以便从另一个接口使用它。
在 Command 模式中,我们将对象的接口更改为通用的 Command 接口,提供一个 execute 方法来调用完成该工作的实际方法。这不是适配器模式已经做的完全一样的事情吗?那么命令模式有什么意义呢?
Command
设计模式用于解决以下问题:
- 如何使用请求配置(自定义)对象?
- 以及如何在 运行 时间动态地(ex)更改请求?
Command
的要点是将请求与其调用者分离
并将其封装在一个单独的对象(命令接口)中。
然后,调用程序将请求动态委托给命令对象。
Adapter
设计模式(对象适配器)用于解决如下问题:
- 如何访问具有不兼容接口的对象
不改变现有接口?
Adapter
的要点是通过一个单独的对象来工作
适应不兼容的接口,即实现我们需要的
接口(目标)(通过委托)不兼容的接口。
Command
模式与 Strategy
模式更相似,
它将算法与其上下文解耦并将其封装
在一个单独的对象(策略)中。
进一步讨论参见GoF Design Patterns Memory学习
面向对象设计与编程
在 http://w3sdesign.com.
在适配器模式中,我们将一个对象的接口更改为另一个接口,以便从另一个接口使用它。
在 Command 模式中,我们将对象的接口更改为通用的 Command 接口,提供一个 execute 方法来调用完成该工作的实际方法。这不是适配器模式已经做的完全一样的事情吗?那么命令模式有什么意义呢?
Command
设计模式用于解决以下问题:
- 如何使用请求配置(自定义)对象?
- 以及如何在 运行 时间动态地(ex)更改请求?
Command
的要点是将请求与其调用者分离
并将其封装在一个单独的对象(命令接口)中。
然后,调用程序将请求动态委托给命令对象。
Adapter
设计模式(对象适配器)用于解决如下问题:
- 如何访问具有不兼容接口的对象
不改变现有接口?
Adapter
的要点是通过一个单独的对象来工作
适应不兼容的接口,即实现我们需要的
接口(目标)(通过委托)不兼容的接口。
Command
模式与 Strategy
模式更相似,
它将算法与其上下文解耦并将其封装
在一个单独的对象(策略)中。
进一步讨论参见GoF Design Patterns Memory学习 面向对象设计与编程 在 http://w3sdesign.com.