现在的位置: 首页 > 综合 > 正文

设计模式之命令模式的一点补充

2012年08月09日 ⁄ 综合 ⁄ 共 500字 ⁄ 字号 评论关闭

在命令模式中有4个角色:调用者,命令,接收者和客户端,调用者的责任是发送命令请求,命令负责对当前的命令接收者处理过程的调用(传达作用)。而接收者负责具体的命令执行,也就是负责命令的具体处理逻辑。客户端的作用就是根据一定的参数,创建具体的命令和接收者,并决定命令由谁(接收者)来执行(请求和处理配对)。需要注意的是调用者可以处在Client端,也可以不处在客户端(比如远程命令请求),因此就整个模式来讲,客户端角色对调用者的依赖就不是必须的了。也因为此,在命令模式的UML图中,是没有Client对调用者Invoker的依赖关系的。当然,虽然没有画,如果命令的调用者的调用请求也是由Client负责,那依赖就是比然的了。

 

后记:之所以写这篇短文,是因为有网友问到了这个问题,这位网友看得很认真和仔细,其实我刚开始学这个模式的时候并没有注意到这个问题,因为从示例代码中来看,Client端是应该对调用者角色有依赖关系的,但UML图中就没有这种依赖关系示意。当然,造成这个问题的主要原因还是在于大部分的示例代码都忽略了这个问题,有点想当然的了。在这里感谢这位网友的提问,也让我对这个模式有了更进一步的理解。

抱歉!评论已关闭.