观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
package cn.xidian.Design.Patterns;
import java.util.Observable;
import java.util.Observer;
public class myObserver implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println(((myObservable)o).getData());
System.out.println(arg);
}
}
package cn.xidian.Design.Patterns;
import java.util.Observable;
public class myObservable extends Observable {
private String arg = "Observer design pattern";
private String data = "";
public String getData() {
return data;
}
public void setData(String data) {
if(!this.data.equals(data)){
this.data = data;
setChanged();
}
notifyObservers(arg+getData());
}
}
package cn.xidian.Design.Patterns;
public class Test {
public static void main(String[] args) {
myObservable observable = new myObservable();
myObserver observer = new myObserver();
observable.addObserver(observer);
observable.setData("1");
observable.setData("2");
observable.setData("3");
}
}