【发布时间】:2012-11-17 21:54:29
【问题描述】:
我最近开始学习 Scala 并开始了一个小项目来创建一个简单的 roguelike 游戏。但是,我一直在尝试实现观察者模式。 This 回答触及主题,但我不知道如何使其发挥作用。以下是上面链接的答案中的代码。我对代码的“this:S =>”部分感到很困惑,我想我应该在那里有某种功能,但我不确定。我想让它从类中返回一个将扩展 Subject 特征的元组。
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))
}
【问题讨论】:
标签: scala