我最近开始学习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