如何从不同模块中的一个Kotein模块访问实例



在使用Kodein时,如果我有两个模块,而module B需要使用module A中的一个实例,那么将module A导入module B是最佳做法,还是有更好的方法?

例如,我有一个networkingModule:

val networkingModule = Kodein.Module("networking") {
bind<Retrofit>() with singleton {
Retrofit.Builder()
.baseUrl("https://api.example.com/")
.build()
}
}

subscribersModule需要来自networkingModule:的改装实例

val subscribersModule = Kodein.Module("subscribersModule") {
import(networkingModule)
bind<SubscribersService>() with singleton {
instance<Retrofit>().create(SubscribersService::class.java)
}
}

subscribersModule中添加import(networkingModule)是最好的方法吗?

最后,如果您的模块在一个项目中使用,则不必强制使它们相互依赖。

相反,您可以将它们导入到全局容器中,如下所示:

val applicationContainer = Kodein {
import(subscribersModule)
import(networkingModule)
// ...
}

Kotein DI将为您解决依赖关系。

相关内容

  • 没有找到相关文章

最新更新