设计模式-观察者模式 气象站应用

设计模式-观察者模式

一个气象站应用\r\n现在需要建立一个应用\r\n利用气象站已有的WeatherData对象取得数据\r\n并及时更新三个布告板:\r\n目前状况布告板(显示湿度、温度、气压)\r\n气象统计布告板\r\n天气预报布告板

现在来实现

measurementsChanged 

Public void measurementsChanged()

 float temp=getTemperature();

 float humidity=getHumidity(); 

 float pressure=getPressure();

 currentConditionDisplay.update(temp,humidity,pressure);

 statisticsDisplay.update(temp,humidity,pressure);

 forecastDisplay.update(temp,humidity,pressure);

}

在这个实现中\r\n完全针对具体实现编程,而非针对接口\r\n对于每个新的布告板,我们都得修改代码\r\n无法在运行时动态地增加(和删除)布告板\r\n尚未封装改变的部分

认识观察者模式

报纸和杂志的订阅\r\n报社的业务就是出版报纸\r\n向某家报社订阅报纸,只要他们有新报纸出版,就会给你送来。只要你是他们的订户,你就会一直收到新报纸\r\n当你不想再看报纸时,取消订阅

定义观察者模式

设计气象站

实现气象站

练习

Java内置的观察者模式

Java.util包内包含最基本的Observer接口与Observable类\r\n和Observer接口与subject接口很相似

重新设计气象站

利用java内置支持重新实现气象站