Sto creando più tratti che estendono l'attore. Quindi voglio creare una classe attore che usi alcuni di questi tratti. Tuttavia, non sono sicuro di come combinare i metodi di ricezione da tutti i tratti nel metodo di ricezione della classe attore.impilamento di tratti multipli negli attori Akka
Tratti:
trait ServerLocatorTrait extends Actor {
def receive() = {
case "s" => println("I'm server ")
}
}
trait ServiceRegistrationTrait extends Actor {
def receive() = {
case "r" => println("I'm registration ")
}
}
L'attore:
class FinalActor extends Actor with ServiceRegistrationTrait with ServerLocatorTrait {
override def receive = {
super.receive orElse ??? <--- what to put here
}
}
Ora, se io mando "r"
e "s"
per FinalActor
va solo in ServerLocatorTrait
- che è l'ultimo tratto aggiunto. Così il modo in cui funziona in questo momento è che si considera eccellente l'ultimo tratto aggiunto, quindi in questo caso ServerLocatorTrait
Domanda:
Come faccio a combinare la ricezione metodi da tutti i tratti in FinalActor
?
PS - ho visto gli attori con react
esempio: http://www.kotancode.com/2011/07/19/traits-multiple-inheritance-and-actors-in-scala/ ma non è quello che mi serve
possibile duplicato di [Scala impilabile modello tratto con gli attori Akka] (http://stackoverflow.com/questions/18124643/scala-stackable-trait-pattern-with-akka-actors) – cmbaxter
@cmbaxter Non vedo come potrebbe essere un duplicato di quello. Sebbene forse quell'OP potesse usare ciò che ho scelto come soluzione. – Adrian