Sat*_*ngh 2 android repository mvvm
我对 mvvm 中的存储库不太了解,也看过多个博客和代码模板。它们中的每一个都与其他的不匹配。所以
为什么需要有多个 Repositories 类?为什么单个存储库不应处理应用程序的所有数据输入输出?
为什么存储库不应该是项目中的 SINGLETON 类?
存储库(的方法)应该向 viewmodel 结果(密封类)或来自 api(如列表)(或错误)的实际响应提供什么?
SharedPrefences 也应该由存储库处理吗?如果没有为什么
我相信存储库应该是代码的一部分,它应该处理来自多个源的所有数据,无论是数据库、网络还是共享首选项。所以你怎么看?
存储库的目的不仅是管理请求/响应,而且还提供一个层来分隔职责。如果您有 2 个模块(假设登录和注册),那么最好将存储库分开以保持干净和简单,而不是使用带有意大利面条代码的单个存储库。
这一点是有主见的。在我看来,您可以拥有单例存储库,因为它们是无状态的,即它们不保存任何可能导致多个 ViewModel/模块之间发生冲突的数据。
取决于你,但返回 Result 会更好。使用 Result,您可以轻松处理成功、失败和错误消息,并直接从存储库返回不同的错误消息,而不是在 ViewModel 中决定显示什么消息。消息可以来自服务器或内部异常消息。
SharedPreferences 是一个数据源。是的,您可以使用存储库模式管理首选项。
| 归档时间: |
|
| 查看次数: |
1996 次 |
| 最近记录: |