有2个类:
- A - 基类
- B - A 成员的类别
实现如下:
class A {
val b : B = B()
}
class B
问题
是否可以为 b
创建一个绑定来隐藏有关公共类中b
源的冗余信息?
科登宣言:
override val kodein by Kodein.lazy {
bind<A>() with singleton { A() }
bind<B>() with "a.b some impl???"
}
用例
class Usecase(kodein : Kodein){
val b : B = kodein.instance()
}
非常简单:
bind<B>() with provider { instance<A>().b }
provider
绑定是最简单的:它每次都会调用提供的函数。函数本身在 Kodein 上下文中运行,因此使用 instance
函数。