初始設計模式7——觀察者模式

觀察者模式Observer Pattern

定義對象間一對多的依賴關係,使得每當一個對象改變狀態,所有依賴它的對象都得到通知自動更新
觀察者模式就是當一個對象的變化會引起其他對象變化時,使其他對象依賴於這個對象,當這個對象變化時,更新所有依賴於這個對象的其他對象。
<span style="white-space:pre">	</span>//抽象觀察者類
	public abstract class Observer{
		public abstract void update();
	}
	//具體觀察者
	public class ConcreteObserver{
		public void update(){//}
	}
	//抽象被觀察者
	pubic abstract class Subject{
		private Vector<Observer> observers = new Vector<Observer>();
		public void add(Observer component){this.observers.add(component);}//增刪容器
		public void remove(Observer component){this.observers.remove(component);}
		public void notify(){
			for(Observer 0:this.observers){
				o.update();
			}
		}
	}
	//具體被觀察者
	public class ConcreteSubject{
		public void doSomething(){
			super.notify();//更新所有觀察者
		}//具體業務
	}
JAVA的JDK中提供了觀察者模式的實現接口,java.util.Observable實現類和java.util.Observer接口
<span style="white-space:pre">	</span>//具體觀察者
	public class ConcreteObserver implements Observer{
		public void update(Observable observable, Object obj){//接口提供的更新函數
			//
		}
	}
	//具體被觀察者
	public class ConcreteSubject extends Observable{
	//Observable實現類提供了增刪觀察者,通知觀察者的方法
		public void doSomething(){
			super.setChanged();//Observable實現的通知所有觀察者方法
		}//具體業務
	}
觀察者和被觀察者抽象耦合
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章