我正在 Windows 7 上的 WPF 中构建图表编辑器。尽管我即将学习重要的设计技术(TDD、Prism、MVVM、依赖注入),尽管我了解一些已建立的设计模式,但这是我的问题:
总体而言,命令将具有不同数量和类型的参数组合。(需要明确的是,每个命令都有一组固定的参数)例如以下,所有这些都可以用鼠标执行:
命令创建新节点:参数=新节点的位置(点)
命令将节点移动到新位置:参数=节点(graphNode),新位置(点)
命令制作连接两个节点的边:参数= From Node(graphNode), To Node(graphNode), Type of Edge (GraphEdgeType)
我应该如何应用工厂模式或抽象工厂模式来最好地封装这些命令?
客户端将这些参数传递给命令执行程序的首选方式是什么?
(我在这里和其他地方搜寻过,但没有找到如此明确的问题或答案,并准备被重定向到我找不到的东西:-)
[编辑] 我不够明确:
如果我创建一个CommandFactory来返回命令,是否应该将它传递给 commandType(例如,一个枚举)和一个参数集对象......还是应该只传递 commandType,以便客户端随后用参数初始化命令?