设计模式中的命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为一个对象,从而允许用户使用不同的请求、队列或日志请求来参数化其他对象。命令模式也支持可撤销的操作。
命令模式的核心组件
- 命令(Command): 封装请求为一个对象。
- 调用者(Invoker): 调用命令对象执行请求。
- 接收者(Receiver): 执行与请求相关的操作。
- 客户端(Client): 构造一个请求命令,并设置它的接收者。
命令模式的优势
- 解耦: 将请求发送者和接收者解耦。
- 扩展性: 易于扩展新的命令。
- 复用: 可以重复执行请求。
示例
假设有一个远程控制器的例子,可以发送不同的命令来控制电视。
- 开电视:
TurnOn Television
- 关电视:
TurnOff Television
- 切换频道:
ChangeChannel Television
使用命令模式,我们可以创建一个`Television`类来执行这些操作,同时创建具体的命令类如`TurnOnCommand`、`TurnOffCommand`和`ChangeChannelCommand`。
[具体代码示例](/code/design-patterns/command)
相关资源
Command Pattern UML Diagram