【发布时间】:2019-07-16 13:03:02
【问题描述】:
我对 MVVM 中模型的实现有些困惑,以下 2 点中哪一个最有意义?
- 我们是否应该将模型视为存储库并在 ViewModel 中引用存储库。
- 应该有单独的模型类与存储库交互,并且 ViewModel 具有该模型类的引用。
【问题讨论】:
-
模型不过是代表数据的类。它告诉您从下到上流动的数据架构/蓝图,反之亦然。存储库不是模型,它的唯一工作是获取本地或基于云的数据。
-
那么你建议用什么模式来获取视图模型中的数据?第 1 点还是第 2 点?
-
我使用第 2 点,viewmodel 看到模型并且模型从存储库中获取数据,如果您更改存储库(例如从 json 而不是文件获取数据)和model 和 viewmodel 不需要任何更改,因为业务逻辑没有改变
-
所有的 MV* 模式(MVC、MVP、MVVM)只描述了如何分离 UI。但 UI 只是应用程序的一部分。您不能期望找到 MV* 模式所描述的整个应用程序概念。
-
不——当您谈到汽车的车轮时,您是否关心发动机?但是您需要为汽车配备发动机 - 但是在谈论车轮时,这并不重要
标签: android mvvm architecture