命令模式 (Command Pattern)
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。该模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。
一、基础
1.1 意图
- 将请求封装为对象,使你可以用不同的请求参数化客户端
- 支持请求的排队、日志记录和撤销操作
- 解耦请求发送者和接收者
1.2 适用场景
- 需要将操作请求与执行操作的对象解耦时
- 需要在不同时间指定、排列和执行请求时
- 需要支持撤销/重做操作时
- 需要将一组简单操作组合成复杂操作时
- 需要实现事务系统时
1.3 结构
- 命令接口(Command):声明执行操作的接口,通常包含一个
execute()
方法。 - 具体命令(ConcreteCommand):实现命令接口,持有一个接收者对象的引用,并在
execute()
方法中调用接收者的相应操作。 - 接收者(Rec