10

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

Activity 将要求ViewModel提供News JsonViewModel查看存储库,并决定从本地或远程存储库发送数据。

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

我无法找到有关此主题的任何官方指南,我想知道这方面的最佳实践。

4

1 回答 1

18

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

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

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

于 2018-05-23T08:06:40.843 回答