国产探花免费观看_亚洲丰满少妇自慰呻吟_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!!!"); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柘城县| 津市市| 全椒县| 西安市| 辉南县| 日土县| 义乌市| 永德县| 城口县| 巴彦淖尔市| 利辛县| 札达县| 丘北县| 宁南县| 蓬安县| 巴南区| 黔江区| 闽侯县| 浦县| 德安县| 开化县| 漠河县| 东源县| 遵义县| 锦屏县| 观塘区| 佛冈县| 兰溪市| 伊通| 吉水县| 清徐县| 无棣县| 清水县| 承德市| 郎溪县| 彭州市| 博乐市| 岗巴县| 余姚市| 天津市| 甘谷县|