我正在努力创造具有自我类型的演员的新方法。
我们假设我有一个演员
trait BarPolicy {
val maxDrinksNumber:Int
}
trait ProductionPolicy extends BarPolicy {
val maxDrinksNumber = 5
}
object FooActor {
def apply() = new FooActor with ProductionPolicy
}
class FooActor extends Actor {
this: BarPolicy =>
}
拥有这些代码我可以这样写:
context.actorOf(Props(FooActor()))
现在这已被弃用,我找不到另一种正确的方法。
根据akka人的建议,“apply()”方法应该看起来像这样:
def apply() : Props = Props(classOf[FooActor])
但我可以在哪里放混合物?
答案 0 :(得分:2)
object FooActor {
private class ProductionFooActor extends FooActor with ProductionPolicy
def apply() : Props = Props(classOf[ProductionFooActor])
}
也许是这样的?
答案 1 :(得分:0)
这样的东西?
object FooActor {
def apply() : Props = Props(new FooActor with ProductionPolicy)
}
val actor = system.actorOf(FooActor())