
オブザーバが通知を受信するには
サブジェクトが通知を送信するには
WeatherData
の
notifyObservers()
メソッドを修正し、オブザーバの
update()
メソッド
を引数なしで呼び出します。
public void notifyObservers() {
for (Observer observer : observers) {
observer.update():
}
}
Observer
インタフェースを修正し、
update()
メソッドのシグネチャを変更して引
数を取らないようにします。
public interface Observer {
public void update();
}
1
最後に、具象
Observer
クラスを修正し、対応する
update()
メソッドのシグネチャを変更し、
WeatherData
のゲッターメソッドを使ってサブジェクトから気象データを取得するように
します。以下は、
CurrentConditionsDisplay
クラスの新しいコードです。
2
public void update() {
this.temperature = weatherData.getTemperature();
this.humidity = weatherData.getHumidity();
display();
}
1
その頃、
Weather-O-Rama
社では
サブジェクトでデータを扱う方法は他にもあります。例えばオブザーバを使って
サブジェクトから必要に応じてデータを取り出すことができます。現時点では ...