设计模式-观察者模式
一个气象站应用\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内置支持重新实现气象站