避免使用创建未使用的类实例的Dagger组件

时间:2019-05-21 10:16:34

标签: android dagger-2

如果您查看Google发布的有关如何构建Android应用程序的图表:

https://developer.android.com/jetpack/docs/guide

您会注意到,似乎单个存储库被用于对缓存数据和通过Web访问的数据的抽象访问。我认为这个存储库是一个单一的类,确实看到过构建的应用程序确实具有一个大型存储库。

但是,这引发了一个问题,即在处理诸如存储库之类的东西时如何使用Dagger。在我的应用程序中,我将拥有有时需要从本地存储或使用Room访问缓存的数据的类。然后有RES​​T api调用来检索数据。

让我困扰的是,如果我创建一个存储库,我真的不希望在不使用缓存时为缓存实例化类,或者在需要缓存时实例化类来处理REST api。换句话说,使用Dagger创建一个包含用于本地数据访问和Web访问的模块的组件似乎是没有意义的。我想避免Dagger立即实例化所有这些类,并使它们在应用程序运行时驻留在内存中。更好的解决方案是仅在需要时实例化我需要的东西。

在Dagger中应该如何处理?应该在存储库中使用两个单独的组件,还是有其他机制仅在需要时创建我需要的类的实例?

0 个答案:

没有答案