路一步步走>> 設計模式十九:Observer-觀察者
阿新 • • 發佈:2018-12-08
package com.test.DPs.XingWei.Observer; import java.util.Enumeration; import java.util.Vector; /** * 行為型:Observer-觀察者 外觀:作用面為 物件 */ interface Observer{ void update(); } class Observer1 implements Observer{ @Override public void update(){ System.out.println("Observer1 has received!"); } } class Observer2 implements Observer{ @Override public void update(){ System.out.println("Observer2 has received!"); } } interface Subject{ //void add(Observer observer); //void del(Observer observer); void notifyObservers(); void operation(); } /** * 用途:定義物件間的一種一對多的依賴關係。 * 當一個物件的狀態發生改變時,所有依賴與它的物件都得到通知並被自動更新。 */ abstract class AbstractSubject implements Subject{ private Vector<Observer> vector = new Vector<Observer>(); @Override public void notifyObservers(){ Enumeration<Observer> enumo = vector.elements(); while(enumo.hasMoreElements()){ enumo.nextElement().update(); } } } class mySubject extends AbstractSubject{ @Override public void operation(){ System.out.println("update self!"); notifyObservers(); } }