Command模式有三个主要组件:调用器,命令和接收机。客户端提供了祈求提供信息,以调用特定方法M
上的接收机必需的,而它是命令对象(其容纳由接收机)实际调用M
。命令模式不是依赖倒置原理的实现吗?
一)为了贯彻落实CP我们必须脱钩调用者与命令的数量逻辑,这样的方式,当我们增加指令数,祈求类没有改变。我们通过让命令对象和Invoker取决于抽象(即接口)。
因此,是不是CP只是具体实现DIP?
b)若CP确实DIP的实现,那么是什么让CP与其他类型的DIP实施的有什么不同?我们不能认为DIP的所有其他实现也有Invoker对象(即更高级别的模块),命令对象(即提供更高级别模块的行为的依赖关系),而将考虑Receiver依赖对象(即低级别模块)调用的任何方法?
谢谢
编辑:
一)
的依赖对象保持相关性作为一个领域,并将其用于 所有后续的方法调用。
如果依赖对象不保持这种依赖作为一个领域,因此不使用它为所有的来电subsequnt,而是它总是收到一个新的依赖的对象,可能我们则认为,我们有a CP而不是DI?
反之亦然 - 如果调用程序总是调用相同的命令对象,可能我们则认为,我们有DI,而不是CP,不管是什么工作命令对象实际执行?b)我理解你正在努力创造的点,但是我仍然有一些重大的麻烦来区分什么使某件事成为行为,什么是一个命令。从我的角度来看,向Invoker传递命令也可以被解释为注入依赖对象所需的行为来完成它的工作。它是真的很明确还是更主观?因此,我们如何判断一个对象所做的工作是命令还是行为?
嗨,万一你找时间帮我一些 - 我已经编辑了我的帖子 – user1483278 2012-07-07 20:29:33
谢谢你的帮助 – user1483278 2012-07-10 15:51:09