我需要为一个新项目学习 Dagger 2,并且正在努力理解这一切。
我看过一些教程,它们给出了一些清晰的说明,但我仍然有很多困惑,例如各种移动部件(组件、模块、注入器、提供程序)如何相互关联。
我在想,也许有人可以向我展示使用 Kodein 进行依赖注入的以下代码的 Dagger 等效实现,这将有助于弥合我在理解上的差距:
注入.kt
fun depInject(app: Application): Kodein {
return lazy {
bind<Application>() with instance(app)
bind<Context>() with instance(app.applicationContext)
bind<AnotherClass>() with instance(AnotherClass())
}
}
基础应用程序.kt
class BaseApplication: Application() {
companion object {
lateinit var kodein: Kodein
private set
}
override fun onCreate() {
super.onCreate()
kodein = depInject(this)
}
}
然后在我需要注入的任何地方我只使用:
private val context: Context by BaseApplication.kodein.instance()
谢谢!