您的位置:首页 > 其它

【设计模式】行为模式之Command命令

2016-08-21 21:59 330 查看
Command命令是一种对象行为型设计模式,目的是将一个请求封装为一个对象,从而使得可用不同的请求对客户进行参数化,而且对请求排队或记录请求日志,以及支持可撤销的操作。

在面向过程语言中的回调机制,如C语言,先在某处注册回调函数,而后在某个需要的时候进行调用,Command模式便是这种回调机制的一个面向对象的替代品,抽象出待执行的动作以参数化某对象。Command模式还可以在不同的时刻指定、排列和执行请求,支持取消操作,支持修改日志,用构建在原语操作上的高层操作构造一个系统。

Command模式的结构如下图所示:



上图中,Command声明执行动作的接口。ConcreteCommand将一个接收者对象绑定于一个动作,调用接收者相应的操作,以实现execute。Client创建一个具体命令对象并设定它的接收者。Invoker要求该命令执行这个请求。Receiver知道如何实施与执行一个请求相关的操作,任何类都可能作为一个接收者。

Client创建一个ConcreteCommand对象并指定它的Receiver对象,某Invoker对象存储该ConcreteCommand对象,该Invoker通过调用Command对象的execute操作来提交一个请求,若该命令是可撤销的,ConcreteCommand就在执行execute操作之前存储当前状态以用于取消该命令,ConcreteCommand对象调用它的Receiver的一些操作以执行该请求。可以看出,Command模式最明显的特点是,将调用操作的对象与知道如何实现该操作的对象解耦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: