【发布时间】:2017-07-05 14:09:27
【问题描述】:
我正在探索新的 Android 架构组件并希望将其实现到 Android 应用中。当我使用 iOS 开发的范例时,我对 MVVM 非常熟悉。阅读了由 Google 提供的 Android 架构组件指南:https://developer.android.com/topic/libraries/architecture/guide.html
我只有几个问题......
在上述指南中,Google 使用访问这些 Web 服务 API 的 UserRepository 类 - 他们继续将此类设为 Singleton 可能没问题,如果应用程序上只有一个屏幕来自 REST API 的所需数据。
我关心的是这个;谷歌似乎提倡需要在每个 ViewModel 的基础上创建一个存储库类。这对我来说听起来很错误,因为应用程序中有这么多 Singlton 类。如果我们有 10 个屏幕,有 10 个 ViewModel——每个都需要自己的Repository module——那么我们的应用程序中有十个单例。从 iOS 开发人员的角度来看,拥有这么多是错误的。
对此的解决方案是拥有一个具有公共方法的中介(存储库)类,公开 API 以从 REST API 获取数据。 Web 服务部分将在其自己的类中。这样,我们就可以很好地分离关注点。
最佳实践是每个 ViewModel 拥有一个存储库类 - 还是每个应用拥有一个?我对此不是 100% 确定的。
最后,当谈到Room时,我也有同样的担忧——Google 是说我们基于每个 ViewModel 创建一个数据库还是每个应用程序只创建一个数据库?
【问题讨论】:
-
您真的在一个简单的页面中阅读了太多内容和一个简单的示例。他们设置的架构适用于某些应用程序,但不适用于其他应用程序。自己多想想什么是有意义的,少复制粘贴指南。
-
本意不是复制粘贴。但我明白你的意思。谢谢。
标签: android mvvm android-room android-architecture-components