MVVM中的模型是什么?

时间:2019-07-16 13:03:02

标签: android mvvm architecture

我对MVVM中的模型实现有些困惑,以下2点中的哪一项最有意义?

  • 我们应该将模型视为存储库,并在ViewModel中引用存储库。
  • 应该有与存储库交互的单独的模型类,并且ViewModel对该模型类有引用。

3 个答案:

答案 0 :(得分:0)

模型和存储库都完全不同。

存储库与如何从另一侧从数据库中检索数据有关,模型或ViewModel定义了如何将数据绑定到UI。

所以我们可以说,存储库是您的数据库和模型之间的桥梁,后者提供了用于查看模型的数据。

使用此链接可获得更好的参考: https://android.jlelse.eu/android-architecture-components-now-with-100-more-mvvm-11629a630125

答案 1 :(得分:0)

观察者模式是在ViewModel和View之间进行通信的推荐方法。您不应该将View的引用传递给ViewModel。

https://medium.com/androiddevelopers/viewmodels-and-livedata-patterns-antipatterns-21efaef74a54

答案 2 :(得分:0)

Model类表示您的数据,该数据从下到上流动,反之亦然。存储库是不是模型。存储库唯一的工作就是弄清楚从本地或从Web上获取数据的位置。

enter code here

(来自Android Guide to app architecture的图表)

如果您查看该图,则您的数据库将与您的Model类一起使用。如果仔细观察,MVVM将遵循某种模式。模式是孩子不知道其父母,但父母知道其直系孩子。遵循此规则,您的Model不应该知道Repository,您的Repository不应该知道您的ViewModel,因为如果他们开始从下到上引用它们,则每个组件都会紧密绑定,任何重大更改都可能影响整个体系结构。

您的ViewModel应该保留对Repositroy的引用。