可以在kodein中绑定一个class成员吗?
Is it possible to bind a class member in kodein?
有2个class是:
- A - 基地 class
- B - A
成员的 class
实现方式如下:
class A {
val b : B = B()
}
class B
问题
是否可以为 b
创建一个绑定以隐藏关于 b
源的冗余信息 classes?
科登声明:
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
函数。
有2个class是:
- A - 基地 class
- B - A 成员的 class
实现方式如下:
class A {
val b : B = B()
}
class B
问题
是否可以为 b
创建一个绑定以隐藏关于 b
源的冗余信息 classes?
科登声明:
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
函数。