🍇
【Android】Koin で複数インターフェイスを継承しているクラスを DI する
SampleImpl.kt
interface SampleA
interface SampleB
class SampleImpl : SampleA, SampleB
SampleImpl
をKoin
で 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