我们应该为整个应用程序的每个Activity或单个存储库创建一个单独的存储库

dev*_*v90 7 android android-mvvm android-livedata android-architecture-components

我正在关注MVVM我的应用程序的架构.getNews()如果新闻尚未缓存,我需要在URL中进行活动.

活动将要求ViewModel给予News JsonViewModel将调查资料库,并决定从本地或远程仓库发送数据.

现在混淆源于以下几点:我应该为每个Activity创建一个单独的Repository类,还是为每个活动与之通信的整个项目创建一个通用的Repository类.在第二种方法中,存储库类将是巨大的.

我无法找到关于这个主题的任何官方指南,我想知道这方面的最佳做法.

Bmu*_*uig 11

为整个应用程序创建一个单独的存储库绝对不是一个好主意,因为它将变得非常大并且非常快速地完全无法管理.

我建议您为每个viewmodel创建单独的存储库,并为多个viewmodel使用的数据创建额外的服务.

在您的示例中,这意味着您拥有一个NewsSource 服务,负责检索和缓存新闻JSON,并让所有需要该数据的存储库从那里检索它.