觀察者模型
可即時得知被觀察者資料異動通知,也是共用元件常用模型之一
需求題目
當學生需隨時得老師資訊,且可以隨時加入監控老師或取消監控老師行為,老師行為為「點名」,學生收到通知,將可立即回覆。
老師:被觀察者,當特定行為學生可即時通知
學生:觀察者:可同步收到被觀察者異動訊息,並可得知被觀察者狀態
/**
* 被觀察者
*/
public interface IObservable<T> {
/**
* 取得資料
* @return
*/
T getData();
/**
* 加入
* @param observer
*/
void add(IObserver<T>observer);
/**
* 移除觀察者
* @param observer
*/
void remove(IObserver<T>observer);
/**
* 通知所有觀察者
*/
void notifyObservers();
}
/**
* 觀察者
* @param <T>
*/
public interface IObserver<T> {
/**
* 更新
* @param IObservable
*/
void update(IObservable<T> IObservable);
}
Last updated
Was this helpful?