在Android应用程序中的哪里创建存储库对象?

时间:2019-05-22 10:26:18

标签: android-architecture-components android-jetpack android-mvvm

如何在Android应用程序中以及在何处创建存储库对象?

您是否将存储库实现为单调?它是静态类吗?

我正在尝试使用单一活动方法:

App structure

显然,我想在每个ViewModel中使用相同的存储库。但是,您选择了哪种方法,或者使存储库只存在一次并从任何地方都可以访问它更有意义?

在android开发人员示例中,他们在mainactivity中创建存储库对象,因为他们需要应用程序对象来创建存储库。但是在此示例中,您无法从任何地方访问它,并且出于相同的原因可以创建多个,例如处理SQL。

1 个答案:

答案 0 :(得分:0)

您是否已阅读本指南,Guide to app architecture?我认为这可以回答您的大多数问题。

实际上,您不应从任何地方访问存储库,而应从ViewModels甚至从UseCases(域层,请查看Clean Architecture)中访问存储库。

ViewModel将数据获取过程委托给一个新模块,即存储库。存储库模块处理数据操作。他们提供了一个干净的API,以便应用程序的其余部分可以轻松检索此数据。他们知道从何处获取数据以及更新数据时API会执行什么操作。您可以将存储库视为不同数据源(例如持久性模型,Web服务和缓存)之间的中介。

要管理组件之间的依赖性,可以使用一些DI库。