设计模式中的命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为一个对象,从而允许用户使用不同的请求、队列或日志请求来参数化其他对象。命令模式也支持可撤销的操作。

命令模式的核心组件

  • 命令(Command): 封装请求为一个对象。
  • 调用者(Invoker): 调用命令对象执行请求。
  • 接收者(Receiver): 执行与请求相关的操作。
  • 客户端(Client): 构造一个请求命令,并设置它的接收者。

命令模式的优势

  • 解耦: 将请求发送者和接收者解耦。
  • 扩展性: 易于扩展新的命令。
  • 复用: 可以重复执行请求。

示例

假设有一个远程控制器的例子,可以发送不同的命令来控制电视。

  • 开电视TurnOn Television
  • 关电视TurnOff Television
  • 切换频道ChangeChannel Television
使用命令模式,我们可以创建一个`Television`类来执行这些操作,同时创建具体的命令类如`TurnOnCommand`、`TurnOffCommand`和`ChangeChannelCommand`。

[具体代码示例](/code/design-patterns/command)

相关资源

Command Pattern UML Diagram