public void update(Observable obs, Object arg)
{
  if (obs instanceof WeatherData) {
  WeatherData weatherData = (WeatherData)obs;
  this.temperature = weatherData.getTemperature();
  this.humidity = weatherData.getHumidity();
  display();
  }
 }


上面的代码来自Head First Design Patterns。每次发生的更改都会触发一个事件,无论事件是否是他们所期望的,都会将其发送给所有观察者。 if块有助于让代码确定要处理的事件。

因此,针对每种此类情况创建可观察的结果将是一种好习惯,对吗?

最佳答案

因此,针对每种此类情况创建可观察的结果将是一种好习惯,对吗?


是!我多次提倡这种方法,例如hereherehere。这使我感到困惑,为什么人们如此频繁地仅使用一个事件类来实现Observer模式,然后又难以传递不同类型的事件。一定要:创建新的事件类!

10-07 18:21