我试图找出通过蛋糕模式混合特征和通过老式扩展混合它们之间的区别。这是我的两个例子:
通过扩展
trait X {
def foo()
}
trait Y extends X {
def bar()
}
class Z extends Y {
def foo() = ()
def bar() = ()
}
通过蛋糕
trait N {
def foo()
}
trait M {
this: N =>
def bar()
}
class U extends M with N {
def bar() = ()
def foo() = ()
}
蛋糕方法有什么好处?它们对我来说都是一样的。也许我错了,但我看不出有任何显着差异。