Aparte del aspecto de la herencia, es que hay una diferencia entre las plantillas de clase:lo que es más Scala idiomática: rasgo TraitA extiende TraitB o rasgo TraitA {auto: TraitB =>}
1| trait TraitA extends TraitB
2| trait TraitA { self: TraitB => }
me gustaría repartir responsabilidades entre TraitA
y TraitB
pero la primera no puede funcionar sin la última.
¿Cómo expresarías tu intención? Para mí, la solución [2] sería el enfoque más natural. Sin embargo, no quiero poner la carga a los implementadores que se mezclan en lo que debe mezclarse de todos modos.
posible duplicado de [¿Cuál es la diferencia entre los tipos de autoescala y las subclases de rasgos?] (Http://stackoverflow.com/questions/1990948/what-is-the-difference-between-scala-self-types- y-rasgo-subclases) –