Java设计模式-观察者模式
来源:互联网 发布:极客营销软件 编辑:程序博客网 时间:2024/05/29 05:02
观察者模式
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新
Java内置支持
java.util库里内置了被观察者(类:Observable)和观察者(接口:Observer)实现,我直接继承Observable和实现Observer来写自己的观察者模式Demo。
被观察者 WeatherData.java(天气检测数据):
import java.util.Observable;public class WeatherData extends Observable { private float temperature;// 当前气温 public void onChange(float temp){ this.temperature = temp; setChanged();// 变更标示 notifyObservers(temperature);// 通知所有注册过的观察者(该方法中会重置变更标示) }}
观察者 CurrentConditionsDisplay.java(公告牌):
public class CurrentConditionsDisplay implements Observer { @Override public void update(Observable o, Object arg) { if(arg != null) display(arg); } @Override public void display(Object arg){ System.out.println("当前温度:"+arg.toString()+" ℃"); }}
注意这里实现了一个Display接口是为了将显示当前温度的方法抽象出来,接口里只有一个display(Object arg)方法。
测试类 Test.java:
public class Test { public static void main(String[] args) { WeatherData weatherData = new WeatherData(); CurrentConditionsDisplay conditionsDisplay = new CurrentConditionsDisplay(); weatherData.addObserver(conditionsDisplay); weatherData.onChange(9.2f); weatherData.onChange(-2.2f); weatherData.onChange(19.2f); }}
下面是输出结果:
当前温度:9.2 ℃当前温度:-2.2 ℃当前温度:19.2 ℃
0 0
- java设计模式-----观察者
- JAVA 观察者设计模式
- java观察者设计模式
- java观察者设计模式
- java 观察者设计模式
- JAVA-观察者设计模式
- JAVA设计模式--观察者
- Java---观察者设计模式
- Java设计模式:观察者
- Java设计模式-观察者
- java观察者设计模式
- java设计模式-观察者模式
- java设计模式---观察者模式
- java设计模式---观察者模式
- java设计模式---观察者模式
- java设计模式-----观察者模式
- java 设计模式---->观察者模式
- java设计模式----观察者模式
- sonarqube6快速入门
- 蚂蚁金服支付宝
- UIImageView 如何实现windows 桌面类似的背景壁纸屏幕(很小的图片会显示N多个)?
- Java进阶---RTTI
- 程序员保值的4个秘密
- Java设计模式-观察者模式
- MyEclipse查看jar包源代码乱码问题解决
- Java历史、现状和各版本技术更迭总结
- ABBYY FineReader 12扫描界面介绍
- 编译 cyanogenmod (cm) android 源码遇到的坑(自用)
- SQLite加密方式
- php-fpm / fastcgi 配置及优化
- 基础百度地图
- 混淆中泛型问题