Observable & Observer
含义:继承Observable的类是被观察者,实现Observer方法的类是观察者
用途:当被观察者中有值改变时,观察者会做出相应响应。
两个重要方法:
setchanged();\\数值改变
notifyObservers();\\通知观察者
举例:
import java.util.Observable;
public class A extends Observable {
private int i=0;
//构造方法
public A(){}
public int getA()
{
return i;
}
//测试方法
public void set_i(int i)
{
if(this.i!=i)
{
this.i=i;
setChanged();
}
notifyObservers();//只有当调用完setChanged()函数后才调用该函数
}
}
import java.util.Observable;
import java.util.Observer;
public class B implements Observer {
//构造方法
public B(A a)
{
a.addObserver(this);//将b添加为a的观察者
}
//更新方法
@Override
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
System.out.println("i改变为:"+((A) o).getA());
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
B b=new B(a);
a.set_i(1);
a.set_i(2);
a.set_i(1);
a.set_i(2);
a.set_i(3);
}
}
输出结果为:
i改变为:1
i改变为:2
i改变为:1
i改变为:2
i改变为:3