命令模式定义
命令模式将一个请求或者行为封装成一个对象。可以在对象之间被传递,存储,修改,撤销。
命令模式使用场景
- 需要实现撤销与恢复功能
- 记录请求日志,在需要撤销操作的时候可以使用
- 想实现一个对象参数化一个动作以执行操作,并且用不同的命令对象替换回调函数
命令模式中的角色
- 接收者:负责具体的功能实现
- 命令协议:定义一些命令方法
- 命令对象:负责调用接收者的逻辑方法
- 命令管理者:负责命令对象之间的调度
代码实现
接收者
1 | class Receiver { |
命令协议
1 | protocol CommandProtocol { |
命令对象
1 | class SoundUpCommand: CommandProtocol { |
命令管理者
1 | class CommandManager { |
终端调用
1 | let receiver = Receiver() |