gpt4 book ai didi

android - mvvm android 中的存储库可以是单例吗?

转载 作者:行者123 更新时间:2023-12-03 08:09:31 25 4
gpt4 key购买 nike

我对 mvvm 中的存储库不太了解,也看过多个博客和代码模板。它们中的每一个都与其他的不匹配。所以

  1. 为什么需要有多个 Repositories 类?为什么单个存储库不应该处理应用程序的所有数据输入输出?

  2. 为什么 Repository 不应该是项目中的 SINGLETON 类?

  3. 存储库(的方法)应向 viewmodel 结果(密封类)或来自 api(如列表)(或错误)的实际响应提供什么?

  4. SharedPrefences 是否也应该由存储库处理?如果没有为什么

    我相信存储库应该是代码的一部分,它应该处理来自多个源的所有数据,无论是数据库、网络还是共享首选项。那你觉得怎么样?

最佳答案

  1. 存储库的目的不仅是管理请求/响应,而且还提供一个层来分隔职责。如果您有 2 个模块(假设登录和注册),最好将存储库分开以保持干净和简单,而不是使用带有意大利面条代码的单个存储库。

  2. 这一点是有固执己见的。在我看来,您可以拥有单例存储库,因为它们是无状态的,即它们不保存任何可能导致多个 ViewModel/模块之间发生冲突的数据。

  3. 取决于你,但返回 Result 会好得多。使用 Result,您可以轻松处理成功、失败和错误消息,并直接从存储库返回不同的错误消息,而不是在 ViewModel 中决定显示什么消息。消息可以来自服务器或内部异常消息。

  4. SharedPreferences 是一个数据源。是的,您可以使用存储库模式管理首选项。

关于android - mvvm android 中的存储库可以是单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71242121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com