我正在Windows 7上的WPF中构建一个图编辑器。 虽然我即将学习重要的设计技术(TDD,Prism,MVVM,依赖注入),虽然我理解了一些已建立的设计模式,但这是我的问题:
作为一个整体,命令将具有不同的数字和类型的参数组合。 (要清楚,每个命令都有一组固定的参数) 例如,以下所有内容都可以使用鼠标执行:
命令创建新节点:参数=新节点的位置(点)
命令将节点移动到新位置:parameters =节点(graphNode),新位置(点)
命令连接两个节点:参数=从节点(graphNode)到节点(graphNode),边缘类型(GraphEdgeType)
我应该如何应用工厂或抽象工厂模式来最好地封装这些命令?
客户端将这些参数传递给Command执行程序的首选方法是什么?
(我已经在这里和其他地方寻找但未找到明确陷害的问题或答案,并准备重定向到我找不到的东西: - )
[编辑]我不够明确:
如果我使 CommandFactory 返回命令,是否应该传递commandType(一个枚举,比如说)和一个参数集对象......或者它应该只是传递了commandType,以便客户端随后使用参数?
来填充命令答案 0 :(得分:1)
我怀疑这https://cuttingedge.it/blogs/steven/pivot/entry.php?id=91(我在Command Pattern : How to pass parameters to a command?找到的)就是我正在寻找的东西,尽管我还没有理解它 - 它可能超越了我所设想的任何技术混乱但无法表达。
答案 1 :(得分:0)
你正在谈论什么?只需将具有所有“参数”属性的类作为参数传递。我应该如何应用工厂或抽象工厂模式来最好地封装这些命令?
(如果有任何声音,您需要state machine。)