参考答案:
(1)Subject
(2)observer.update(temperature,humidity,cleanness)
(3)notifyObservers()
(4)measurementsChanged()
(5)Observer
(6)envData.registerObserver(this)
详细解析:
EnvironmentData是环境数据,也就是我们要监测的对象,即主题(Subject),因此(1)处为Subject。
(2)处为通知观察者,因此遍历观察者容器,遍历到一个观察者对象,则更新该观察者的数据,即调用观察者的update()方法。
当环境数据变化时,需要通知观察者,因此(4)处是调用环境变化方法measurementsChanged(),通过此方法通知观察者更新数据,因此(3)处为notifyObservers()。
根据CurrentConditionsDisplay 类中的update()方法可知:CurrentConditionsDisplay 是个观察者,因此(5)处为Observer
(6)是将观察者添加到主题中去。