觀察者模式簡單demo

    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. 實際應用            配置文件的改變。
相關文章
相關標籤/搜索