有两个班级:
实现类似的东西:
class A {
val b : B = B()
}
class B
问题
是否可以为b
创建绑定,以隐藏常见类中b
源的冗余信息?
Kodein声明:
override val kodein by Kodein.lazy {
bind<A>() with singleton { A() }
bind<B>() with "a.b some impl???"
}
USECASE
class Usecase(kodein : Kodein){
val b : B = kodein.instance()
}
答案 0 :(得分:2)
很简单:
bind<B>() with provider { instance<A>().b }
provider
绑定是最简单的绑定:它每次都会调用提供的函数。
函数本身在Kodein上下文中运行,因此使用instance
函数。