添加到视图模型的对象继承自单独的模型项目,是否会破坏MVVM以添加引用?

时间:2016-04-22 13:02:10

标签: c# design-patterns mvvm

我有(不仅仅是,但限制焦点)模型的两个类库,以及视图模型的另一个库。

其中一个库名为Condenser,它有一个名为WaterCooledCondenser的类,它继承自Subcomponents项目中的HeatExchanger类。冷凝器是业务逻辑,但它是专为视图模型进行交互而设计的(它是模型的一部分)。当我在视图模型中创建一个新的Condenser时,它表示没有引用HeatExchanger,并添加对Subcomponents的引用......我不认为视图模型有任何关于该库中的类的任何业务,它们只是为模型提供结构。

添加对类库的引用会违反MVVM吗?还有另一种方法让视图模型知道模型的结构吗?

1 个答案:

答案 0 :(得分:1)

如果这些是第三方图书馆,您可能会失败。但总的来说,我会说你的ViewModel应该只知道如何与另一个库的Interfaces进行交互。这样,如果库更改实现,如果接口相同,则不应该丢失。

这就是说,在MVVM中允许知道模型的基本结构。但是,当您了解班级的具体情况时,保持业务逻辑和模型完全分离会变得更加困难。为了防止这种接口是将来验证代码的好工具。

我会用一粒盐说话。这完全基于我在这种设计模式中工作的经验。