0

当使用蛋糕模式时,你什么时候想使用自类型注释,例如:

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

与存根定义

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

或存根值

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

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

谢谢内塔

4

0 回答 0