Android - 数据源与存储库

Som*_*der 13 android datasource repository mvvm kotlin

您会听到很多人在谈论 MVVM 或 MVI 等设计模式时谈论存储库和数据源。我一直在为 Retrofit 和 API 调用等内容创建存储库,并为 Firebase 或其他库等内容创建数据源。但我不能 100% 确定我理解 Android 世界中数据源和存储库之间的区别。

有人可以启发我吗?

提前致谢。

fur*_*kan 14

正如前面的答案所指出的,阅读应用程序架构指南可以帮助理解数据源和存储库之间的关系。

以下是上述指南中的一段有用的引述,以澄清其中的关系:

存储库模块处理数据操作。他们提供了一个干净的 API,以便应用程序的其余部分可以轻松检索此数据。他们知道从哪里获取数据以及更新数据时要调用哪些 API。您可以将存储库视为不同数据源(例如持久模型、Web 服务和缓存)之间的中介。

您在问题中提到的内容(改造、Firebase 等)都是不同的数据源。您可以从等式中删除存储库并单独处理所有数据操作。但存储库模块充当不同数据源和应用程序其余部分之间的抽象层。


Bak*_*ser 12

存储库是视图模型用来获取数据的 API。存储库可以访问数据源并决定从哪里获取数据。请参阅 Android 的应用程序架构指南。

Android MVVM架构。