Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 这是命令模式吗?_Design Patterns_Command_Mvp - Fatal编程技术网

Design patterns 这是命令模式吗?

Design patterns 这是命令模式吗?,design-patterns,command,mvp,Design Patterns,Command,Mvp,我有一个MVP Gui,现在我想为某些视图定义某些操作或命令(修改、保存、关闭等) 有没有一个简单的方法可以做到这一点?我应该为每个视图提供命令吗?最简单的方法是在工厂中实例化所有命令对象。因此,如果您有一个openjob命令,那么所有视图都会转到工厂,取出openjob命令对象,实例化它,然后执行它。如果您需要修复一个bug或更改openjob命令,那么您只需在一个位置对所有视图执行该操作 话虽如此,仍有一些命令可能对每个视图都是唯一的。尽管如此,您可能仍然希望将它们封装在命令对象中,因为您可

我有一个MVP Gui,现在我想为某些视图定义某些操作或命令(修改、保存、关闭等)


有没有一个简单的方法可以做到这一点?我应该为每个视图提供命令吗?

最简单的方法是在工厂中实例化所有命令对象。因此,如果您有一个openjob命令,那么所有视图都会转到工厂,取出openjob命令对象,实例化它,然后执行它。如果您需要修复一个bug或更改openjob命令,那么您只需在一个位置对所有视图执行该操作


话虽如此,仍有一些命令可能对每个视图都是唯一的。尽管如此,您可能仍然希望将它们封装在命令对象中,因为您可以轻松地通过命令对象实现撤消/重做

MVP听起来像是在使用WPF?你检查过WPF的指挥架构了吗?没有,我正在Winforms中实现MVP