阅读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也是相关的,所以两种风格基本上没有区别?