将模型与视图模型分开有什么意义?(MVVM)

Cod*_*asy 2 c# wpf design-patterns mvvm viewmodel

我不认为我正确理解MVVM模式,因为拥有Model和ViewModel类对我来说似乎是多余的.

我对模型的理解是基本上添加一个类的次要细节,让ViewModel处理所有的逻辑和实现.如果是这样的话,为什么将两者分开呢?难道你不能在视图模型中创建变量,属性等,并且仍然有逻辑吗?

对我来说,它在某种程度上听起来像C++.您有头文件,它描述了定义类的类和实现文件.在c#中这样做有什么意义吗?

我觉得我不理解分离,因为我不完全理解MVVM模式.如果有人可以为我澄清这将是非常棒的.

提前致谢.

Noc*_*tis 5

为了尝试使这个更有形的答案,让我们看一个例子.你想在一个漂亮的闪亮WPF程序中拥有相同的旧"计算器"示例.

你不记得在视图模型中跳入和编写所有内容,而是记住你实际上已经在很久以前为不同的项目编写了这些内容,并且你实际上足够聪明,可以在一个单独的(可重用的)dll中使用所有计算器功能.
所以,你得到了你的模型.

现在剩下的就是你的GUI.您在WPF(View)中绘制了一个漂亮的闪亮窗口,然后您需要将来自dll的调用和数据桥接到视图.你猜对了......这是你的ViewModel :).

另一方面,我们的想法是能够在一个大团队中工作,一些人在逻辑(模型)上工作,一些设计师在视图上工作,而另一个人(可以是上述任何一个)可以获得位与视图模型一起工作.