我对MVVM中的模型实现有些困惑,以下2点中的哪一项最有意义?
答案 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上获取数据的位置。
(来自Android Guide to app architecture的图表)
如果您查看该图,则您的数据库将与您的Model
类一起使用。如果仔细观察,MVVM
将遵循某种模式。模式是孩子不知道其父母,但父母知道其直系孩子。遵循此规则,您的Model
不应该知道Repository
,您的Repository
不应该知道您的ViewModel
,因为如果他们开始从下到上引用它们,则每个组件都会紧密绑定,任何重大更改都可能影响整个体系结构。
您的ViewModel
应该保留对Repositroy
的引用。