首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

《head first》学习札记之二——观察者模式

2012-08-31 
《head first》学习笔记之二——观察者模式通俗的理解一下观察者模式:当一个受观察对象发生改变时,则观察它的

《head first》学习笔记之二——观察者模式
通俗的理解一下观察者模式:当一个受观察对象发生改变时,则观察它的所有对象都跟着更新。应用场景如,天气信息改变时,各种显示设备都跟着更新。

主要类包括:主题接口(被观察者接口)、主题类、观察者接口、观察者类。

过程中,主题(被观察者)可以采用push数据方式让观察者更新,观察者也可以采用pull数据方式更新,主要看数据的安全性问题,以及各观察者需要的数据情况。

观察者模式可以自己单独实现,也可以采用java.util.Observer接口(观察者)和java.util.Observable类(主题,被观察者)来实现,但是后者在更新个观察者时,是不分先后顺序的,而自己实现的时候可以控制这个更新顺序。

下面分别实验两种情况:

首先是自己实现,

1,下面是主题接口

 
6,下面是另一个观察者
 
7,测试一下
 
3,另一个观察者
 
4,测试一下
package net.roky.pattern.observer;public class Main {public static void main(String[] args) {WeatherData weatherData = new WeatherData();new Display1(weatherData);new Display2(weatherData);for (int i = 1; i < 1000; i++) {weatherData.setMeasurements(i % 100, 2 * i, 25.3f);}}}

热点排行