我的应用程序遵循
MVVM
架构。在 Activity 中,如果新闻尚未缓存,我需要从 URL getNews()
。
活动将要求
ViewModel
提供 News Json
,ViewModel
将查看存储库,并决定从本地或远程存储库发送数据。
现在的困惑源于以下一点:我应该为每个 Activity 创建一个单独的 Repository 类,还是为每个 Activity 通信的整个项目创建一个通用的 Repository 类。在第二种方法中,存储库类会很大。
我无法找到有关此主题的任何官方指南,我想知道这方面的最佳实践。
为整个应用程序创建单个存储库绝对不是一个好主意,因为它会变得非常大并且很快完全无法管理。
我建议您为每个 viewmodel 创建单独的 repositories,并为多个 viewmodels 使用的数据另外创建 services。
在您的示例中,这意味着您有一个 NewsSource service 负责检索和缓存新闻 JSON,并让所有需要该数据的 repositories 从那里检索数据。
我已经很晚了,但这可能对其他来这里的人有帮助!
Google(截至 2023 年 12 月)推荐的使用存储库模式的最佳实践是
to have a repository for each type of data source your app uses.
您可以在此处进一步阅读:添加存储库和手动 DI
它进一步指出:
什么是存储库?
一般来说,存储库类: