如何简化具有许多属性的viewmodel / model的使用?

时间:2013-10-02 08:18:52

标签: c# wpf design-patterns mvvm

我正在开发远程设备管理应用程序。每个设备具有近200个参数的相等集合。我认为每个设备都将由DeviceModel和DeviceViewModel类表示。由于大量设备参数,DeviceModel和DeviceViewModel非常麻烦。此外,这样的INPC特性在性能方面可能并不好。

因此。让ViewModel具有如此多的属性是可以的吗?这会对性能产生影响还是可能不是那么多?如果它不好,有没有办法解决这个问题?

修改 为了缩小问题范围(而不是让你与设备管理员混淆)我编辑了它。

2 个答案:

答案 0 :(得分:1)

首先,如果您不愿意(或不能)修改模型的设计,则无法治愈。

也就是说,您可以随意设计您的模型。例如,您不必为每个设备创建一个类。

模型不必反映物理模型(设备和数百个参数),它可以是一个逻辑抽象,可以帮助您和其他开发人员处理问题域。

尝试识别以某种方式相关的设备参数,并将它们分组到一个类中。然后,您可以从“设备”类聚合这些“参数组”类。

此外,不要在模型中包含未使用的参数,它们只会使您的设计混乱并增加维护成本。稍后添加它们应该没问题。

嗯,这是一个广泛的问题......希望这有帮助!

答案 1 :(得分:0)

如果您担心的是有关两百个属性的带宽,则会找到每个属性的默认值,并且不在传输(序列化)中包含该属性。

这将大大减少每个消息字节数。

作为旁注,WPF对每个实例使用类似的方法:每个类都有一个<property, default value>的静态字典