我的应用程序遵循MVVM
架构。在Activity中,如果新闻尚未缓存,我需要从URL中getNews()
。
Activity将要求ViewModel
给予News Json
,ViewModel
将查看存储库,并决定从本地或远程存储库发送数据。
现在的困惑源于以下一点:我应该为每个Activity创建一个单独的Repository类,还是为每个Activity与之通信的整个项目创建一个通用的Repository类?在第二种方法中,Repository类将非常庞大。
我找不到这方面的任何官方指导方针,我想知道这方面的最佳做法。
2条答案
按热度按时间kt06eoxx1#
为整个应用程序创建一个单一的存储库绝对不是一个好主意,因为它会变得非常大,并且很快就完全无法管理。
我建议您为每个视图模型创建单独的存储库,并为多个视图模型使用的数据创建额外的服务。
在你的例子中,这意味着你有一个 NewsSource 服务负责检索和缓存新闻JSON,并让所有需要数据的存储库**从那里检索它。
lx0bsm1f2#
我已经迟到了,但这可能对其他来这里的人有帮助!
Google推荐的最佳实践(截至2023年12月)是
to have a repository for each type of data source your app uses.
您可以在这里进一步阅读:添加存储库和手动DI
它还指出:
什么是仓库?
一般来说,一个仓库类: