使用命令模型的主要好处是什么?



我想知道在WPF中使用命令模型的主要好处是什么。我是Windows窗体和MFC的混合体,我总是利用在事件处理程序中编写代码。

命令允许轻松管理应启用或不应启用哪个UI元素(通过ICommand接口的CanExecute成员)。

您可以将同一个命令插入多个位置,甚至可以从另一个命令调用一个命令,在我看来,这种方式在架构上比使用事件更干净。

有了命令,你可以编写测试代码,让真正的用户点击你的UI(再次使用命令的CanExecute成员,你可以很容易地看到command A及其相关控件是否按计划对command B的执行做出反应)

在维护方面,当你放入一个以前没有处理过的项目时,当读取写有<Button Name="SomeButton" Command="{Binding SaveClientDataCommand} />而不是<Button Name="SomeButton" OnClick="SomeButton_Click" />的标记时,也更容易理解应用程序的作用。

如果您使用MVVM模式,它们允许您将逻辑从View移动到ViewModel。

其中很多都是关于个人偏好和意见的,但当有几种方法可以做同样的事情时,情况往往就是这样。轮子还没有被重新发明,你可能无法用命令做任何基于事件的编程所不可能做的事情,但我觉得它更干净、更容易维护。

尽管命令和事件可以重叠,但它们是两回事
命令说"做这个&";,而事件说";事情就这样发生了&">
例如:所以您可能会有一个";CloseWindowCommand";用于关闭窗口;关闭事件";告诉正在关闭的订阅对象。

最新更新