我正在探索新的 Android 架构组件并希望将其实现到 Android 应用程序中。当我使用 iOS 开发的范例时,我对 MVVM 非常熟悉。阅读了 Google 提供的 Android 架构组件指南:https ://developer.android.com/topic/libraries/architecture/guide.html
我只有几个问题...
在上面提到的指南中,Google 使用访问这些 Web 服务 API 的类——如果应用程序上只有一个屏幕需要来自 REST API 的数据,UserRepository
他们继续制作这个类可能很好。Singleton
我关心的是这个;谷歌似乎提倡需要在每个 ViewModel 的基础上创建一个存储库类。这对我来说听起来很不对,在Singlton
应用程序中有这么多课程。如果我们有 10 个屏幕,有 10 个 ViewModel - 每个都需要自己的Repository module
- 我们的应用程序中就有 10 个单例。从 iOS 开发人员的角度来看,拥有这么多是错误的。
对此的解决方案是拥有一个具有公共方法的中介(存储库)类,公开 API 以从 REST API 获取数据。Web 服务部分将在其自己的类中。这样,我们就可以很好地分离关注点。
最佳实践是每个 ViewModel 拥有一个存储库类 - 还是每个应用程序拥有一个?我对此不是 100% 确定的。
最后,我也有同样的担忧Room
——谷歌是说我们在每个 ViewModel 基础上创建一个数据库,还是每个应用程序只创建一个数据库?