如何在MVVM中构建ViewModel而不违反单一责任原则?

Prz*_*mek 12 silverlight wpf mvvm solid-principles

罗伯特马丁说:"一个班级改变的理由永远不应该超过一个".

让我们考虑绑定到View的ViewModel类.ViewModel可能(甚至可能)由彼此不相关的属性组成.对于小视图,ViewModel可能非常一致,但是当应用程序变得更加复杂时,ViewModel将公开可能因不同和无关原因而发生变化的数据.

我们是否应该在ViewModel类的情况下担心SRP原则?

gco*_*res 19

ViewModel的唯一职责是提供View所需的信息.如果View需要不同且不相关的属性并不重要,因为ViewModel只有一个更改原因,那就是View显示不同的属性.所以你不要太担心.

也就是说,如果ViewModel确实变大了,也许您可​​以考虑将视图划分为多个子视图以提高可重用性并保持Views和ViewModel的可管理性.