使用Cake Pattern与构造函数中的传递参数相关的依赖注入

时间:2016-08-29 15:55:01

标签: scala dependency-injection constructor cake-pattern

阅读this博文后,我不明白:

使用自我类型注释与为依赖注入指定构造函数参数有什么区别?

换句话说,这种风格的区别是什么:

object Main {
  def main(args: Array[String]) {
    val barWithFoo = new BarUsingFooAble with MyFooAble with BazAble
    println(barWithFoo.bar())
  }
}

和此:

object Main {
  def main(args: Array[String]) {
    val barWithFooAndBaz = new BarUsingFooAble(new FooAble with BazAble)
    println(barWithFooAndBaz.bar())
  }
}

和这个(第三个选项):

object Main {
  def main(args: Array[String]) {
    val barWithFoo = new BarUsingFooAble with FooAbleComponent with BazAbleComponent {
      val bazAble = new BazAble() //or any other implementation
      val fooAble = new FooAble() //or any other implementation
    }
    println(barWithFoo.bar())
  }
}

有没有(超出语法)? (必须存在,否则自我类型注释将不存在)。

编辑:

This似乎是相关的问题,虽然它没有回答这个问题。

This也是相关的,所以两种风格基本上没有区别?

0 个答案:

没有答案