可以将属性存储在存储库中以供重用吗?

时间:2020-06-05 10:01:49

标签: android android-mvvm

我正在和一些朋友制作一个应用程序,我们决定采用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

1 个答案:

答案 0 :(得分:0)

这是我个人使用存储库的方式,也是使用存储库的方式。存储库是我们获得数据的地方。这样,任何视图或活动都可以直接从Repository轻松访问数据,并且可以在任何ViewModel中使用。这是回答您的问题还是您需要更多详细信息?