0

我正在 Windows 7 上的 WPF 中构建图表编辑器。尽管我即将学习重要的设计技术(TDD、Prism、MVVM、依赖注入),尽管我了解一些已建立的设计模式,但这是我的问题:

总体而言,命令将具有不同数量和类型的参数组合。(需要明确的是,每个命令都有一组固定的参数)例如以下,所有这些都可以用鼠标执行:

命令创建新节点:参数=新节点的位置(点)

命令将节点移动到新位置:参数=节点(graphNode),新位置(点)

命令制作连接两个节点的边:参数= From Node(graphNode), To Node(graphNode), Type of Edge (GraphEdgeType)

我应该如何应用工厂模式或抽象工厂模式来最好地封装这些命令?

客户端将这些参数传递给命令执行程序的首选方式是什么?

(我在这里和其他地方搜寻过,但没有找到如此明确的问题或答案,并准备被重定向到我找不到的东西:-)

[编辑] 我不够明确:

如果我创建一个CommandFactory来返回命令,是否应该将它传递给 commandType(例如,一个枚举)一个参数集对象......还是应该只传递 commandType,以便客户端随后用参数初始化命令?

4

2 回答 2

1

我怀疑这个https://cuttingedge.it/blogs/steven/pivot/entry.php?id=91(我在命令模式:如何将参数传递给命令?)是我正在寻找的东西,即使我还不明白——它可能超越了我所设想但无法表达的任何混合技术。

于 2013-07-22T08:58:48.143 回答
0

我应该如何应用工厂模式或抽象工厂模式来最好地封装这些命令?

你在说什么?只需传入一个具有所有“参数”属性的类作为参数。

(如果这听起来像你需要一个状态机。)

于 2013-07-21T06:19:47.153 回答