🍇

【Android】Koin で複数インターフェイスを継承しているクラスを DI する

2021/04/12に公開

SampleImpl.kt

interface SampleA

interface SampleB

class SampleImpl : SampleA, SampleB

SampleImplKoinで DI します。

val modules = module {
    // 1つのインターフェイス(SampleA)を継承している場合
    factory<SampleA> { SampleImpl() }
    // 2つ以上のインターフェイス(SampleA/SampleB)を継承している場合
    factory { SampleImpl() }.binds(arrayOf(SampleA::class, SampleB::class))
}

startKoin {
    androidContext(context)
    modules(modules)
}

Discussion