2
モデルにいくつかのイベントがあり、処理ロジックがいくつかあります。コミュニケーションロジックを構成して俳優を欲しい。しかし、私は、各具象クラスメッセージ処理の動作を継承します
簡体例
class Event {}
case class FooEvent(str : String) extends Event
case class BarEvent(i : java.lang.Integer) extends Event
trait FooListener extends Actor {
def act() {
react{
case FooEvent => print("foo received")
}
}
}
trait BarListener extends Actor {
def act() {
react{
case BarEvent => print("bar received")
}
}
}
class ListensOnlyBar extends BarListener{}
//can't be done:
//error: overriding method act in trait FooListener of type()Unit;
//method act in trait BarListener of type()Unit needs `override' modifier
//class ListensBarAndFoo extends FooListener with BarListener{
class ListensBarAndFoo extends FooListener with BarListener{}
@Kipton Barros、これは何について質問です。それらを組み合わせる方法はありますか? –
@Kipton Barros、 'FooEvent'は' FooListener'と 'BarEvent'sによって' BarListener'によって処理されるべきです。 –
私が見ると、テンシは素敵な答えがあります。あなたが望むものは、本当に継承でできることではありません。ところで、あなたの 'act()'メソッドに "override"修飾子を入れると、線形化はサブクラス( 'ListensBarAndFoo')で一番左の' act() 'メソッド(' FooListener'から)を獲得します。 –