Cake Pattern自我类型注释与stub def或val

时间:2013-12-14 21:17:32

标签: scala cake-pattern

使用蛋糕模式时,您何时需要使用自我类型注释,例如:

trait DefaultFoo extends Foo {
  this: Bar =>
  ...
}

vs stub def

trait DefaultFoo extends Foo {
  def bar:Bar
  ...
}

或存根

trait DefaultFoo extends Foo {
  val bar:Bar
  ...
}

更新: 我会更具体一点(希望如此)。所有这三种形式都定义了对Bar实例的需求。所以基本上,任何一种形式混合在这个特征中的任何非抽象类都必须提供Bar的实现。我的问题是,我什么时候想使用自我类型注释强制执行Bar;我什么时候想要使用def存根来强制和实现Bar,何时我想使用val存根强制它。我希望现在的问题更清楚一点。

由于 Netta

0 个答案:

没有答案