Я создаю несколько черт, которые расширяют Actor. Затем я хочу создать класс актера, который использует некоторые из этих признаков. Тем не менее, я не уверен, как объединить методы получения от всех признаков метода получения класса Actor.
Черты:
trait ServerLocatorTrait extends Actor {
def receive() = {
case "s" => println("I'm server ")
}
}
trait ServiceRegistrationTrait extends Actor {
def receive() = {
case "r" => println("I'm registration ")
}
}
Актер:
class FinalActor extends Actor with ServiceRegistrationTrait with ServerLocatorTrait {
override def receive = {
super.receive orElse ??? <--- what to put here
}
}
Теперь, если я отправляю "r"
и "s"
в FinalActor
, он идет только в ServerLocatorTrait
- это последняя добавленная черта.
Так вот как это работает сейчас, это то, что он считает супер последним добавленным признаком, поэтому в этом случае ServerLocatorTrait
Вопрос:
Как объединить методы приема со всеми чертами в FinalActor
?
PS - Я видел актеров с примером react
: http://www.kotancode.com/2011/07/19/traits-multiple-inheritance-and-actors-in-scala/
но это не то, что мне нужно