国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

觀察者模式

2019-11-11 04:28:09
字體:
來源:轉載
供稿:網友

觀察者模式(又被稱為發布-訂閱(Publish/Subscribe)模式,屬于行為型模式的一種,它定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的觀察者對象,使他們能夠自動更新自己。

簡單代碼實現

public interface Observer { public void update(String message);}public class Observable implements Observer { PRivate String name; public Observable(String name) { this.name = name; } @Override public void update(String message) { System.out.println(name + "-" + message); }}

核心接口,用于添加和刪除訂閱者,同時向訂閱者發送消息。

public interface Subject { /** * 增加訂閱者 * @param observer */ public void attach(Observer observer); /** * 刪除訂閱者 * @param observer */ public void detach(Observer observer); /** * 通知訂閱者更新消息 */ public void notify(String message);}

維護一個Observer列表

public class SubscriptionSubject implements Subject { private List<Observer> list = new ArrayList<Observer>(); @Override public void attach(Observer observer) { list.add(observer); } @Override public void detach(Observer observer) { list.remove(observer); } @Override public void notify(String message) { for (Observer observer : list) { observer.update(message); } }}public class Client { public static void main(String[] args) { SubscriptionSubject mSubscriptionSubject=new SubscriptionSubject(); Observable observable1=new Observable("xxx"); Observable observable2=new Observable("ooo"); mSubscriptionSubject.attach(observable1); mSubscriptionSubject.attach(observable2); mSubscriptionSubject.notify("updated!!!"); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 津南区| 自贡市| 张家川| 垫江县| 毕节市| 吉林市| 宁远县| 抚宁县| 尉氏县| 建瓯市| 崇左市| 柞水县| 吴堡县| 城市| 莒南县| 桐城市| 吉林省| 九台市| 石棉县| 长沙市| 德清县| 丹寨县| 太原市| 怀集县| 平定县| 扎赉特旗| 马尔康县| 内江市| 台中县| 凉山| 台北市| 格尔木市| 高平市| 饶平县| 兴城市| 玛纳斯县| 五华县| 沙洋县| 旬邑县| 新和县| 福海县|