【发布时间】:2012-01-30 16:09:32
【问题描述】:
考虑这两个特征:
trait Poked extends Actor {
override def receive = {
case Poke(port, x) => ReceivePoke(port, x)
}
def ReceivePoke(port: String, x: Any)
}
trait Peeked extends Actor {
override def receive = {
case Peek(port) => ReceivePeek(port)
}
def ReceivePeek(port: String)
}
现在考虑我可以创建一个实现这两个特征的新 Actor:
val peekedpoked = actorRef(new Actor extends Poked with Peeked)
如何编写接收处理程序?即,接收者应该类似于以下代码,尽管是“自动生成的”(即所有特征都应该组合):
def receive = (Poked.receive: Receive) orElse (Peeked.receive: Receive) orElse ...
【问题讨论】:
标签: scala composition akka