设计模式之命令( Command )模式
命令模式属于对象的行为模式,有称为行动模式或交易模式。在需要将发出请求的对象和接受请求的对象解耦的时候就可以使用命令模式。
命令模式把一个请求或一个操作封装到对象中。命令模式允许使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
使用命令模式具有以下几个优点:
1 、命令模式使新的命令很容易被加到系统
2 、允许接收请求的一方决定是否要否决请求
3 、能较容易的设计一个命令队列
4 、可以容易的实现对请求的 Undo 和 Redo
5 、在需要的情况下,可以很容易的将命令记入日志
命令模式涉及到得角色:
1 、客户角色:创建一个具体命令并确定其接收者
2 、命令角色:声明一个给所有具体命令类的抽象接口
3 、具体命令角色:定义一个接收者和行为之间的弱耦合
4 、请求者角色:负责调用命令执行请求
5 、接收者角色:负责具体实施和执行一个请求。