【发布时间】:2021-03-09 22:30:57
【问题描述】:
在谈论 MVVM 或 MVI 等设计模式时,您会听到很多人谈论存储库和数据源。我一直在为 Retrofit 和 API 调用之类的东西创建存储库,为 Firebase 或其他库之类的东西创建数据源。但我不能 100% 确定我了解 Android 世界中数据源和存储库之间的区别。
有人可以请教我吗?
提前致谢。
【问题讨论】:
标签: android kotlin mvvm repository datasource
在谈论 MVVM 或 MVI 等设计模式时,您会听到很多人谈论存储库和数据源。我一直在为 Retrofit 和 API 调用之类的东西创建存储库,为 Firebase 或其他库之类的东西创建数据源。但我不能 100% 确定我了解 Android 世界中数据源和存储库之间的区别。
有人可以请教我吗?
提前致谢。
【问题讨论】:
标签: android kotlin mvvm repository datasource
正如上一个答案所指出的,通过guide to app architecture可以帮助理解数据源和存储库之间的关系。
以下是上述指南中有用的引述,以阐明这种关系:
Repository 模块处理数据操作。他们提供了一个干净的 API,所以 应用程序的其余部分可以轻松检索此数据。他们知道 从哪里获取数据以及在数据存储时调用什么 API 更新。您可以将存储库视为之间的中介 不同的数据源,例如持久模型、网络服务和 缓存。
您在问题中提到的内容(改造、firebase 等)都是不同的数据源。您可以从方程式中删除存储库并单独处理所有数据操作。但是存储库模块充当不同数据源和应用程序其余部分之间的抽象层。
【讨论】:
存储库是视图模型用来获取数据的 API。存储库可以访问数据源并决定从何处获取数据。请参阅 Android 的Guide to app architecture.
【讨论】: