我最近開始學習Scala,並開始創建一個簡單的roguelike遊戲的小項目。然而,我堅持試圖實現觀察者模式。 This答案觸及了這個問題,但我無法弄清楚如何使它工作。以下是上面鏈接的答案中的代碼。我大多對「this:S =>」部分代碼感到困惑,我想我應該有某種功能,但我不確定。我想讓它從類中返回一個元組來擴展主題特徵。實現觀察者模式
trait Observer[S] {
def receiveUpdate(subject: S);
}
trait Subject[S] {
this: S =>
private var observers: List[Observer[S]] = Nil
def addObserver(observer: Observer[S]) = observers = observer :: observers
def notifyObservers() = observers.foreach(_.receiveUpdate(this))
}
感謝您的具體例子。現在工作得很好。 – Zavior