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()
が、特性ミックスインでは、 のみB.act()
が呼び出されます。これを達成する簡単な方法はありますか?
編集:これが私が見つけた半分の解決策です。Actor
元の特性が拡張されなくなり、C with A with B
動的な混合ではなくクラスとして定義する必要があるため、「半分」と言います。多分私はそれを「クォーターソリューション」と呼ぶべきですか?