【发布时间】:2013-12-01 14:24:37
【问题描述】:
以下是我想以干净的方式达到的状态:
如您所见,我的问题是Invoker 只知道Command 接口,但想调用ConcreteCommand。此实现再次需要来自Invoker 的一些参数。
这是我迄今为止使用的肮脏解决方案:
这个解决方案有几个问题:
-
Invoker拥有关于命令参数的计数和类型的元知识。 -
Invoker使用魔术字符串来获取所需的命令。 - 当
Invoker没有传递正确的参数时,我得到一个运行时错误。我宁愿编译错误。
在不破坏松散耦合的情况下,将参数传递给具体命令的常用方法是什么(例如,Invoker 需要知道 ConcreteCommand)?
问候,世界树
【问题讨论】:
标签: design-patterns command-pattern loose-coupling