设计模式之观察者模式
来源:互联网 发布:微信js获取地理位置 编辑:程序博客网 时间:2024/05/21 01:48
观察者模式:一对多的关系模式,一为状态可以改变的对象,多为依赖该对象的众多观察者,jdk中已经有该模式的API和类 java.util.Observable和java.util.Observer。可观察者,即那个一,是extends了java.util.Observable的扩展类;观察者,即Observer,必须实现java.util.Observer接口中的update()方法。当可观察者的状态改变时,可以通知到多个依赖其的观察者,如下为一个小小栗子,当可观察者的温度temp改变时,观察者随时都能感受并做出相应反应:
package jsoup;import java.util.Observable;import java.util.Random;//可观察者public class ObserverPattern extends Observable { public void setChange(int temp){ setChanged(); notifyObservers(temp); //当状态temp温度改变时,通知所有注册在该对象中的观察者,并调用观察者的update()方法,可以进Observable看源码 } //测试代码 public static void main(String[] args){ ObserverPattern subject = new ObserverPattern(); Observer observer = new Observer(subject); //当可观察者状态改变时,依赖其的观察者可以随时感受到状态的改变并做出相应的反应 Random random = new Random(47); int count = 0; while(count<10){ int r = random.nextInt(100); subject.setChange(r); count++; } }}//观察者class Observer implements java.util.Observer { Observable subject; int temp; public Observer(Observable o) { this.subject = o; subject.addObserver(this); //将实例出的观察者注册到可观察者中 } @Override public void update(Observable o, Object arg) { //重写Observer API中的update() temp = (int) arg; disPlay(); } private void disPlay() { System.out.println("temp changed, temp=" + temp); }}
0 0
- 设计模式之-观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 十进制小数与二进制的相互转换
- 信工所简介
- 状态模式
- 提交表单后显示.asp源代码
- restoreToCount 异常报错.
- 设计模式之观察者模式
- 盘点2016
- 详细讲解二叉树三种遍历方式的递归与非递归实现
- C++初学D1学期 1
- webview中java代码与js信息传递小结
- 怎样实现多个背景界面的选择
- 算法之选择排序——简单选择排序
- java程序故障处理总结
- 分布式锁服务ZooKeeper