Ich erstelle mehrere Eigenschaften, die Schauspieler erweitern. Dann möchte ich eine Schauspielerklasse erstellen, die einige dieser Eigenschaften verwendet. Ich bin mir jedoch nicht sicher, wie ich die Empfangsmethoden von allen Merkmalen in der Empfangsmethode der Actor-Klasse kombinieren soll.stapeln mehrere Merkmale in akka Schauspieler
Merkmale:
trait ServerLocatorTrait extends Actor {
def receive() = {
case "s" => println("I'm server ")
}
}
trait ServiceRegistrationTrait extends Actor {
def receive() = {
case "r" => println("I'm registration ")
}
}
Der Schauspieler:
class FinalActor extends Actor with ServiceRegistrationTrait with ServerLocatorTrait {
override def receive = {
super.receive orElse ??? <--- what to put here
}
}
Nun, wenn ich "r"
und "s"
zu FinalActor
senden es nur in ServerLocatorTrait
geht - die hinzugefügt der letzte Zug ist. So ist der Weg, dies jetzt funktioniert, ist, dass sie der Auffassung ist Super das letzte Merkmal hinzugefügt, so dass in diesem Fall ServerLocatorTrait
Frage:
Wie kombiniere ich die Züge in FinalActor
Methoden von allen erhalten?
PS - Ich habe die Schauspieler mit react
Beispiel zu sehen: http://www.kotancode.com/2011/07/19/traits-multiple-inheritance-and-actors-in-scala/ aber es ist nicht das, was ich brauche
möglich Duplikat [Scala stapelbaren Charakterzug Muster mit Akka Schauspieler] (http://stackoverflow.com/questions/18124643/scala-stackable-trait-pattern-mit-akka-aktoren) – cmbaxter
@cmbaxter Ich sehe nicht, wie es ein Duplikat davon sein könnte. Aber vielleicht könnte das OP das verwenden, was ich als Lösung gewählt habe. – Adrian