J'essaie de trouver quelle est la différence entre mélanger des traits via le modèle de gâteau et de les mélanger via l'extension à l'ancienne. Voici mes deux exemples:Quels sont les avantages de l'approche gâteau en vertu de l'ancien mode étendu?
Via extension
trait X {
def foo()
}
trait Y extends X {
def bar()
}
class Z extends Y {
def foo() =()
def bar() =()
}
Et par gâteau
trait N {
def foo()
}
trait M {
this: N =>
def bar()
}
class U extends M with N {
def bar() =()
def foo() =()
}
Quels sont les avantages de l'approche de gâteau? Ils sont tous deux les mêmes pour moi. Peut-être que je me trompe, mais je ne vois pas de différence significative.