我注意到我的观点需要与其他人一样的信息。但有时您需要视图模型的 5 个属性,有时只需要 2 个。
您是在多个视图上共享这样的视图模型,还是为每个视图创建单独的视图模型,或者您更喜欢继承或组合策略?
对我来说,共享视图模型有一些缺点:
- 最小惊喜原则:一个视图模型只填充5个属性的2个并得到空引用异常是很奇怪的,因为你不想查询数据库的额外数据。当视图模型有 5 个属性时,我希望所有属性都被填充。例外证明了规则。
- 关注点分离/单一职责原则:视图模型在复杂的站点上杂乱无章,因为您必须满足每个视图的不同需求。如果涉及逻辑,它也会变得更加复杂。
你怎么看?你如何处理这样的情况?