观察者模式
来源:互联网 发布:jquery 遍历数组对象 编辑:程序博客网 时间:2024/05/01 21:36
java 提供Observable 抽象类和observer接口为开发者实现观察者模式提供便利,下面是一个例子。
观察者
import java.util.*;public class myobserver implements Observer{ private int id; private static int count=0; public myobserver(Observable observable) { //观察者将自己注册到被观察者 observable.addObserver(this); id=count++; } @Override public void update(Observable o, Object arg) { // TODO Auto-generated method stub System.out.println("观察者"+id+"观察到的数据:"+((myobservable) o).getVar()); }}
被观察者
import java.util.*;public class myobservable extends Observable{ private int var;//观察者需要观察的数据 public int getVar() { return var; } public void setVar(int var) { this.var = var; this.setChanged();//标记被观察者状态已改变 this.notifyObservers();//内部会调用observer的update()方法 } public static void main(String[] args) { myobservable observable=new myobservable(); new myobserver(observable); new myobserver(observable); new myobserver(observable); observable.setVar(2); observable.setVar(-9); }}
结果
观察者2观察到的数据:2
观察者1观察到的数据:2
观察者0观察到的数据:2
观察者2观察到的数据:-9
观察者1观察到的数据:-9
观察者0观察到的数据:-9
0 0
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- springmvc拦截器使用
- POJ 3168 Barn Expansion (几何+排序)
- nyoj118 修路方案(求次小生成树)
- printf输出字体颜色
- 可以使电脑更加顺手的软件以及设置(个人习惯)
- 观察者模式
- C语言基础之--------内存地址分配
- js获取项目的各个路径
- Java连接MQ的实例
- 内存泄漏检测
- linux kernel 网络协议栈之xps特性详解
- Window系统装机步骤
- Python 序列的方法
- 【手势交互】3. Leap Motion