成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

“HeadFirst設計模式“:觀察者模式

觀察者模式

目前創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、潛江網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。


    觀察者模式定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態(tài)時,它的所有依賴者都會收到通知并自動更新。一方可稱為主題(subject),另一方可稱為觀察者(observer),一個主題可擁有多個觀察者。當主題的數(shù)據(jù)有變動時,就會通知所有訂閱了它的觀察者。在這之后的操作有兩種:

  • 推:主題直接將數(shù)據(jù)推送給所有觀察者。

  • 拉:主題通知了所有觀察者后,每個觀察者再根據(jù)自己的需要從主題拉取所需數(shù)據(jù)。

    現(xiàn)實中的列子: 報紙出版社+訂閱者=觀察者模式,找工作+獵頭=觀察者模式


概念圖:

“Head First 設計模式“ :觀察者模式“Head First 設計模式“ :觀察者模式

UML圖:

“Head First 設計模式“ :觀察者模式“Head First 設計模式“ :觀察者模式

我們看一個列子吧

需求:Internet氣象站需求

描述:跟蹤氣象站的數(shù)據(jù),有變化時更新WeatherData對象,并最新信息顯示在對應的顯示器上,如下:

“Head First 設計模式“ :觀察者模式

我們分析需求:

1. 一對多關系(不同的數(shù)據(jù)顯示在對應的布告板上,如:濕度,溫度等)。

2. 氣象數(shù)據(jù)有變化時更新最新值并顯示在布告板。

很適合觀察者模式來實現(xiàn),最終實現(xiàn)的UML圖如下(代碼省略):

“Head First 設計模式“ :觀察者模式“Head First 設計模式“ :觀察者模式

JAVA內(nèi)置支持觀察者模式

注意:JAVA內(nèi)置支持觀察者模式,Subject是類不是接口,導致必須用繼承,java本身不支持多繼承,所以導致層次問題,不靈活。建議自己實現(xiàn)。

java.util.Observable(主題)

java.util.Observer(觀察者)

我們用內(nèi)置方法實現(xiàn)上面的列子,類圖如下:

“Head First 設計模式“ :觀察者模式“Head First 設計模式“ :觀察者模式


總結;

觀察者模式的應用場景: 

1、 對一個對象狀態(tài)的更新,需要其他對象同步更新,而且其他對象的數(shù)量動態(tài)可變。 

2、 對象僅需要將自己的更新通知給其他對象而不需要知道其他對象的細節(jié)。


設計原則:為了交互對象之間的松耦合設計而努力。

網(wǎng)頁題目:“HeadFirst設計模式“:觀察者模式
本文URL:http://jinyejixie.com/article38/iiscsp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設網(wǎng)站收錄、營銷型網(wǎng)站建設、網(wǎng)站導航電子商務、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
望都县| 龙泉市| 泰宁县| 成安县| 仪征市| 南涧| 长武县| 出国| 石景山区| 海门市| 长治市| 瓮安县| 常州市| 察雅县| 新昌县| 板桥市| 鸡西市| 乌鲁木齐县| 天柱县| 库车县| 香港| 商丘市| 班戈县| 金平| 诏安县| 绥中县| 拜泉县| 尚义县| 图们市| 祁门县| 彭州市| 红安县| 建阳市| 历史| 汉源县| 郧西县| 阿拉善左旗| 济宁市| 德兴市| 无极县| 雷波县|