Что еще больше Scala идиоматическая: Trait Traita расширяет Trails или Traita Traita {Self: Traitb =>}

Помимо аспекта наследования, есть ли разница между следующими шаблонами класса:

1| trait TraitA extends TraitB

2| trait TraitA { self: TraitB => }

Я хотел бы разделить обязанности между Traita и Traitb , но первый не может функционировать без последних.

Как бы вы выразили этот намерение? Для меня решение [2] будет более естественным подходом. Однако я не хочу ставить нагрузку на реализующие, смешивающиеся в том, что необходимо в любом случае.

19
задан Tim Friske 30 August 2011 в 22:07
поделиться