android 我们应该为每个Activity创建一个单独的存储库,还是为整个应用创建一个存储库

tzdcorbm  于 12个月前  发布在  Android
关注(0)|答案(2)|浏览(129)

我的应用程序遵循MVVM架构。在Activity中,如果新闻尚未缓存,我需要从URL中getNews()
Activity将要求ViewModel给予News JsonViewModel将查看存储库,并决定从本地或远程存储库发送数据。
现在的困惑源于以下一点:我应该为每个Activity创建一个单独的Repository类,还是为每个Activity与之通信的整个项目创建一个通用的Repository类?在第二种方法中,Repository类将非常庞大。
我找不到这方面的任何官方指导方针,我想知道这方面的最佳做法。

kt06eoxx

kt06eoxx1#

为整个应用程序创建一个单一的存储库绝对不是一个好主意,因为它会变得非常大,并且很快就完全无法管理。
我建议您为每个视图模型创建单独的存储库,并为多个视图模型使用的数据创建额外的服务
在你的例子中,这意味着你有一个 NewsSource 服务负责检索和缓存新闻JSON,并让所有需要数据的存储库**从那里检索它。

lx0bsm1f

lx0bsm1f2#

我已经迟到了,但这可能对其他来这里的人有帮助!
Google推荐的最佳实践(截至2023年12月)是to have a repository for each type of data source your app uses.
您可以在这里进一步阅读:添加存储库和手动DI
它还指出:

什么是仓库?

一般来说,一个仓库类:

  • 将数据暴露给应用程序的其余部分。
  • 集中对数据的更改。
  • 解决多个数据源之间的冲突。
  • 从应用程序的其余部分提取数据源
  • 包含业务逻辑

相关问题