Model-View-ViewModel(MVVM)模式的优势是否值得开销?

Dmi*_*try 9 silverlight mvvm

问题在主题中说明:Model-View-ViewModel(MVVM)模式的优势是否值得开销?

在许多情况下,实现视图模型涉及重复模型属性以及有时模型和ViewModel数据成员之间的同步的相当大的开销.例如,目前在Silverlight 4和WCF RIA中,不会生成视图模型(如果开发人员遵循MVVM模式,则由他来创建视图模型,通常在ViewModel上复制相应的模型属性,这些属性没有任何重要意义,但是参考模型作为存储).

为什么不扩展Model类,提供额外的属性以使其易于被View使用?

aqw*_*ert 2

为什么不扩展 Model 类,提供额外的属性以方便 View 使用呢?

实际上这就是PresentationModel的用途。MVVM 是强烈基于的。不同之处在于 ViewModel 是视图的模型,而不是数据的模型。因此,您更关心视图如何处理数据。

如果您有一个简单的 UI,它所做的只是呈现模型,那么我建议在 ViewModel 的属性上公开模型并绑定到该属性。确保模型确实实现了INotifyPropertyChanged等。

ViewModel 的强大之处在于当您需要执行一些操作来响应用户操作时。然后,ViewModel 可以支持命令、调用服务和验证,从而将模型保留为数据容器