我正在和一些朋友制作一个应用程序,我们决定采用MVVM模式。但是,他们对模式的理解与我的不同。
我的问题是:如果我们有一个要在其他视图中重用的数据,是否可以将它们作为属性存储在存储库中(因为存储库模式是单例),并可以从其他视图模型访问它们?
这是我的意思的一般示例:
object AnimalRepository {
val favoriteBreed : Breed? = null
}
,我们将这样访问它:
class DogViewModel(
application: Application
) : AndroidViewModel(application){
val animalRepository = AnimalRepository
fun setFavoriteBreed(favBreed: Breed) {
animalRepository.favoriteBreed = favBreed
}
fun getFavoriteBreed() : Breed {
return animalRepository.favoriteBreed
}
在这种情况下,为了简单起见,我没有使用LiveData。
辩论源于我们对Android应用架构指南这一部分的不同解释: https://developer.android.com/jetpack/docs/guide#truth
答案 0 :(得分:0)
这是我个人使用存储库的方式,也是使用存储库的方式。存储库是我们获得数据的地方。这样,任何视图或活动都可以直接从Repository轻松访问数据,并且可以在任何ViewModel中使用。这是回答您的问题还是您需要更多详细信息?