我正在Windows 7上构建一个WPF图编辑器。 尽管我正在学习重要的设计技术(TDD,Prism,MVVM,依赖注入),但我理解了一些已建立的设计模式,这里是我的问题:如何设计/执行命令模式时,命令可变数量的参数?
总的来说,这些命令会有不同数量和类型的参数组合。 (为了清楚起见,每个命令具有固定的参数集) 例如,下文中,所有这些都可以用鼠标来执行:对新的节点参数=位置(:
命令创建新的节点点)
命令移动节点到新位置:参数=节点(graphNode),新位置(点)
命令使连接两个节点的边缘:参数=从节点(graphNode),到节点(graphNode) ,边缘类型(GraphEdgeType)
如何应用工厂或抽象工厂模式来最好地封装这些命令?
客户端将这些参数传递给Command主管的首选方式是什么?
(我在这里打猎和其他地方,但没有发现问题或答案,所以明确框架,并准备被重定向到的东西我找不到:-)
[编辑]我没有足够明确的:
,如果我做一个的CommandFactory返回命令,如果它被传递命令类型(枚举,说)和参数集对象......还是应该只通过命令类型,从而使客户端随后使用参数填充命令?
我看不出如何做到这一点,接收方可以高效地验证给定命令类型的参数集 - 即不显式检查传递的每个值的类型。 或者[刚才发生在我身上]我是否定义了一个特定于每个命令的参数类,但绑定了一个用于检索单个值的接口? – user167471
我将不得不刷新状态机:-) – user167471