是否可以在 kodein 中绑定类成员



有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 函数。

最新更新