[Design] Command Pattern
行为模式主要是责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。
行为模式分为类的行为模式和对象的行为模式两种。
类的行为模式
类的行为模式使用继承关系在几个类之间分配行为。
对象的行为模式
对象的行为模式则使用对象的聚合来分配行为。
--------------------------------------------------------
命令模式
命令模式是对象的行为模式。以称为行动模式或交易模式。
命令模式把一个请求或者操作封装到一个对象中,命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
结构及角色
- 1、客户(Client)角色
创建一个具体命令对象并确定其接收者。
- 2、抽象命令(Command)角色
声明所有具体命令角色必须实现的接口,一般由抽角类或接口实现。
- 3、具体命令(Concrete Command)角色
实现抽象命令角色所声明的接口。并定义一个接收者和行为之间的弱耦合,负责调用接收者的相应操作。
- 4、请求者(Invoker)角色
负责调用命令对象执行请求,相关的方法叫做行动方法。
- 5、接收者(Receiver)角色
负责具体实施和执行一个请求。任何一个类都可以成为接收者,实施和执行请求的方法叫做行动方法。