问题描述
假设我们的应用程序中包含以下模块(箭头表示依赖):
app-> {module1,module2}-> {核心模块}。
我们的模块1定义了接口1,而我们的模块2定义了接口2。我们的应用程序模块已定义并实例化为Singleton的Interface1n2Implementation(实现Interface1和Interface2)。
问:就dagger2生态系统而言,如何为module1和module2提供相同的Interface1n2Implementation实例?
解决方法
您的AppModule
可以创建具有特定范围(在这种情况下为@Singleton
)的实现,并且您可以有2个提供方法来返回此实现实例。
注意:未经测试
@Module
object AppModule {
@Provides
@Singleton
internal fun provideImplementation() : Interface1n2Implementation =
Interface1n2Implementation()
@Provides
fun provideInterface1(implementation: Interface1n2Implementation) : Interface1 = implementation
@Provides
fun provideInterface2(implementation: Interface1n2Implementation) : Interface2 = implementation
}