定义:“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都将得到通知,并自动更新”,这就是所谓的观察者模式,照意思理解那么就一定会有观察者和被观察者了,在Java1.2之后,提供了两个类,即Observable被观察者,Observer观察者;在Android中也提供了一个类Observable用于观察者模式。
//被观察者
package com.xiaowenzi.observer;
import java.util.Observable;
public class ObservableObservable extends Observable {
private String data = "";
public String getData() {
return data;
}
public void setData(String i) {
if (!(this.data.equals("i"))) {
this.data = i;
setChanged();
}
// 只有在setChange()被调用后,notifyObservers()才会去调用update(),否则什么都不干。
notifyObservers();
}
}
//观察者
package com.xiaowenzi.observer;
import java.util.Observable;
import java.util.Observer;
public class ObserverObserver implements Observer {
public ObserverObserver(ObservableObservable so) {
so.addObserver(this);
}
public void update(Observable o, Object arg) {
System.out.println("Data has changed to" + ((ObservableObservable) o).getData());
}
}
Test.java
package com.xiaowenzi.observer;
public class Test {
public static void main(String[] args) {
ObservableObservable observable = new ObservableObservable ();
ObserverObserver view = new ObserverObserver (observable);
observable.setData( "2222");
}
}