Я использую библиотеку Koin для проекта Android.
Я хочу поделиться некоторыми экземплярами между модулями, поскольку они часто используются в приложении.
Например:
val moduleA = module {
scope(named<FragmentA>()) {
scoped { FirebaseFirestore.getInstance() }
scoped { LocalDatabase.getInstance(App.sContext) }
scoped { NetworkDataSourceA(get()) }
}
}
val moduleB = module {
scope(named<FragmentB>()) {
scoped { FirebaseFirestore.getInstance() }
scoped { LocalDatabase.getInstance(App.sContext) }
scoped { NetworkDataSourceB(get()) }
}
}
Как видно из следующих модулей, FirebaseFirestore.getInstance()
и LocalDatabase.getInstance(App.sContext)
одинаковы для обоих модулей.
Есть ли способ, где я могу объявить, скажем, moduleC
, который содержит FirebaseFirestore.getInstance()
и LocalDatabase.getInstance(App.sContext)
, а затем вызвать его на moduleA
и moduleB
?