Java设计模式-观察者模式
2016-12-21 10:28
441 查看
观察者模式
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新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 ℃
相关文章推荐
- java设计模式-观察者模式
- Java设计模式:单态模式,工厂模式,代理模式,观察者模式示例
- java常用类库续3(比较器Comparable、Comparator、观察者设计模式、正则表达式、定时调度)
- java设计模式:观察者模式(Observer)
- JAVA设计模式-观察者模式简单例子
- 使用观察者模式实现Java应用程序设计MVC模式
- Java设计模式_行为模式_观察者模式
- 设计模式---观察者模式(Observer Pattern with java)
- Java设计模式—观察者模式(Observer pattern)
- java 设计模式-观察者模式
- Java设计模式 -- 观察者模式(push方式)
- All About JAVA 关于设计模式中的“观察者模式”
- java设计模式_观察者模式
- Java设计模式-----Observer观察者模式
- Java设计模式之Observer 观察者模式
- Java设计模式 -- 观察者模式(pull方式)
- Java设计模式 Design Pattern:观察者模式 Observer Pattern
- Java设计模式 Design Pattern:观察者模式 Observer Pattern
- 【设计模式】observer观察者模式:模拟java.awt.Button事件监听。
- 设计模式---观察者模式(Observer Pattern with java)