Android - 数据源与存储库
Android - DataSource vs Repository
在谈论 MVVM 或 MVI 等设计模式时,您会听到很多人谈论存储库和数据源。我一直在为 Retrofit 和 API 调用创建存储库,为 Firebase 或其他库创建数据源。但我不是 100% 确定我理解 Android 世界中数据源和存储库之间的区别。
谁能赐教一下吗?
提前致谢。
存储库是视图模型用来获取数据的 API。存储库可以访问数据源并决定从何处获取数据。参见 Android 的 Guide to app architecture.
正如之前的回答所指出的,通过 guide to app architecture 可以帮助理解数据源和存储库之间的关系。
引用上述指南中的一段有用的话来阐明两者之间的关系:
Repository modules handle data operations. They provide a clean API so
that the rest of the app can retrieve this data easily. They know
where to get the data from and what API calls to make when data is
updated. You can consider repositories to be mediators between
different data sources, such as persistent models, web services, and
caches.
您在问题中提到的内容(改造、firebase 等)都是不同的数据源。您可以从等式中删除存储库并单独处理所有数据操作。但是存储库模块充当不同数据源和应用程序其余部分之间的抽象层。
在谈论 MVVM 或 MVI 等设计模式时,您会听到很多人谈论存储库和数据源。我一直在为 Retrofit 和 API 调用创建存储库,为 Firebase 或其他库创建数据源。但我不是 100% 确定我理解 Android 世界中数据源和存储库之间的区别。
谁能赐教一下吗?
提前致谢。
存储库是视图模型用来获取数据的 API。存储库可以访问数据源并决定从何处获取数据。参见 Android 的 Guide to app architecture.
正如之前的回答所指出的,通过 guide to app architecture 可以帮助理解数据源和存储库之间的关系。
引用上述指南中的一段有用的话来阐明两者之间的关系:
Repository modules handle data operations. They provide a clean API so that the rest of the app can retrieve this data easily. They know where to get the data from and what API calls to make when data is updated. You can consider repositories to be mediators between different data sources, such as persistent models, web services, and caches.
您在问题中提到的内容(改造、firebase 等)都是不同的数据源。您可以从等式中删除存储库并单独处理所有数据操作。但是存储库模块充当不同数据源和应用程序其余部分之间的抽象层。