视图模型应该包含逻辑吗?

9
在WPF应用程序中,ViewModel的责任是什么?他可以管理一切还是只能代表视图并向业务层发送消息/事件以及从业务层获取信息?

1
是的 - 从头到尾的MVVM教程 - Josh
1个回答

13

简短回答,是的。

稍长回答...

Model-View-ViewModel(MVVM)模式的主要目标是:

  1. 允许您对视图逻辑进行单元测试。这些是应用于没有与之关联的视图执行的ViewModel层的单元测试。
  2. 通过最小化与XAML文件相关联的代码后台,促进开发者和设计师的工作流程。

MVVM模式还像MVC及其UI模式一样,提供了在视图逻辑和业务逻辑之间的责任分离。不过,上述两点才是真正定义MVVM模式的关键。

现在,考虑您将业务逻辑定位在何处。如果您将其放置在ViewModel中,#1和#2是否仍然有效? 是的。如果您将其放入单独的层中,#1和#2是否仍然有效? 是的。

因此,在这两种情况下,您仍然可以实现MVVM的两个主要目标。采取哪种路线取决于应用程序的复杂性以及参与其中的开发人员数量。随着这两个因素的增加,您将受益于拥有3个或更多层!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接