MVVM模式下ViewModel中如何处理多个Model组合的匿名类型
问题解答
1. Unknown类型的归属结论
你对Model和ViewModel的认知是完全正确的,这个Unknown类型应该归类为ViewModel,命名为UnknownViewModel即可。
- Model的核心定位是业务/数据库实体,只承载业务原生的、和视图无关的核心数据,不会为了适配视图需求合并两个不同业务实体的字段。
- 你当前的Unknown类型是专门为了给视图返回合并后的数据设计的,既不对应独立的业务实体,也不会参与数据库映射,完全符合ViewModel的定位。
2. ViewModel嵌套是通用最佳实践
ViewModel嵌套完全是行业通用的合理实现,没有任何问题:
- ViewModel的核心设计目的就是和视图结构一一对应,如果你的视图是「外层容器+内部列表」的层级结构,对应的ViewModel自然就需要是外层容器VM嵌套列表项VM的结构,完全符合MVVM的设计原则。
- 反过来如果为了避免嵌套硬把
UnknownViewModel归到Model层,反而会污染业务Model的纯洁性,把视图适配逻辑和业务核心逻辑耦合,后续业务迭代修改Model时很容易牵连到视图逻辑,反而得不偿失。
内容的提问来源于stack exchange,提问作者Matheus Souza
相关产品推荐
相关产品推荐

