定义
将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
结构
客户端(Client):创建一个具体命令(ConcreteCommand)对象并确定其接收者。
命令(Command):声明了一个给所有具体命令类的抽象接口。
具体命令(ConcreteCommand):定义一个接收者和行为之间的弱耦合;实现execute()方法,负责调用接收者的相应操作。execute()方法通常叫做执行方法。
请求者(Invoker):负责调用命令对象执行请求,相关的方法叫做行动方法。
接收者(Receiver):负责具体实施和执行一个请求。任何一个类都可以成为接收者,实施和执行请求的方法叫做行动方法。
优点
命令模式使新的命令很容易地被加入到系统里。
允许接收请求的一方决定是否要否决请求。
能较容易地设计一个命令队列。
可以容易地实现对请求的撤销和恢复。
在需要的情况下,可以较容易地将命令记入日志。
......
......
......
将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
结构
客户端(Client):创建一个具体命令(ConcreteCommand)对象并确定其接收者。
命令(Command):声明了一个给所有具体命令类的抽象接口。
具体命令(ConcreteCommand):定义一个接收者和行为之间的弱耦合;实现execute()方法,负责调用接收者的相应操作。execute()方法通常叫做执行方法。
请求者(Invoker):负责调用命令对象执行请求,相关的方法叫做行动方法。
接收者(Receiver):负责具体实施和执行一个请求。任何一个类都可以成为接收者,实施和执行请求的方法叫做行动方法。
优点
命令模式使新的命令很容易地被加入到系统里。
允许接收请求的一方决定是否要否决请求。
能较容易地设计一个命令队列。
可以容易地实现对请求的撤销和恢复。
在需要的情况下,可以较容易地将命令记入日志。
......
......
......