我正在和一些朋友一起开发一个应用程序,我们决定使用 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
这就是我个人使用存储库的方式,也是存储库的使用方式。存储库是我们获取数据的地方。因此,这使得任何视图或活动都可以轻松地直接从存储库访问数据,并且可以从任何 ViewModel 使用。这是否回答了您的问题,或者您需要更多详细信息?