1. Model.java ------------------------------------------被觀察者
package com.lxh.observer;
import java.util.Observable;
/**
* 被觀察者
*/
public class Model extends Observable {
// 被觀察者改變
public void change(){
System.out.println("Model has been changed...");
// 對象改變,不設置不會觸發notifyObservers()方法
setChanged();
// 通知監控者
notifyObservers();
}
}
2. Viewer.java -----------------------------------------觀察者
package com.lxh.observer;
import java.util.Observable;
import java.util.Observer;
/**
* 觀察者
*/
public class Viewer implements Observer {
//
@Override
public void update(Observable o, Object arg) {
System.out.println("copy that you had been changed ...");
}
}
3. Test.java -----------------------------------------簡單測試
package com.lxh.observer;
public class Test {
public static void main(String[] args) {
// 初始化對象
Model m = new Model();
Viewer v = new Viewer();
// 被觀察者綁定觀察者
m.addObserver(v);
// 被觀察者改變
m.change();
}
}
4. 運行結果
5. 實際應用 配置文件的改變。