MVVM模式中只应该有一个ViewModel类吗?

时间:2016-10-27 19:08:31

标签: c# mvvm xamarin

我试图了解MVVM模式,但有一些问题尚不清楚。我的Xamarin Forms应用程序将有几个视图(这是非常明显的)。他们每个人都必须绑定到不同的ModelView类吗?或者也许应该只有一个MV?

2 个答案:

答案 0 :(得分:2)

是和否
- >基本上,我们的想法是您的ViewModel只能由一个视图使用。如果您使用ViewModel填充某个区域或其他内容,那么ViewModel将被重复使用"每次在不同的地方展示该视图。
- >您可以在视图模型中使用多个模型。视图模型的目的是抽象出业务/数据层(即模型)。 但是,使用多个模型通常表示视图太大。您可能希望将其拆分为用户控件(具有自己的视图模型)。

参考文献:

  1. With MVVM, does each UI window have its own ViewModel?
  2. In MVVM, is every ViewModel coupled to just one Model?

答案 1 :(得分:1)

我一直认为“每个视图都有自己的虚拟机” - 模型是综合设计的子集。

我将从痛苦的经历中说:不要仅仅基于它们支持的视图/ UI来单独设计模型。如果没有全面的模型后端,您将很难将所有部分集成到一个可行的连贯,完整的业务模型中。贫血类,冗余位,不完整和错误的验证,相同的属性 - 不同的名称,与现有代码的不兼容性,hacky胶水代码的混乱,程序员打破彼此的代码,没有可重用性,不重用现有类。对于我们来说,所有这一切都在3个月的测试 - 失败 - 修复倾斜 - 尴尬的旋风中达到了顶峰。