trait A extends Actor {
private val s = Set[Int]()
override def act() {
loop {
react {
// case code that modifies s
}
}
}
}
trait B extends Actor {
private val t = Set[String]()
override def act() {
loop {
react {
// case code that modifies t
}
}
}
}
val c = new C with A with B //...?
我真正想要的是某种自动组合B.act() and C.act()
,但使用 trait mix-ins,只会B.act()
被调用。有没有简单的方法来实现这一点?
编辑:这是我找到的半解决方案。我说“一半”是因为原始特征不再扩展Actor
,并且C with A with B
需要定义为一个类而不是动态混合。也许我应该称之为“四分之一解决方案”?