




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2觀察者(觀察者(Observer)模式模式讓你的對(duì)象知悉現(xiàn)況認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式l我們看看報(bào)紙和雜志的訂閱:l報(bào)社的業(yè)務(wù)是出版報(bào)紙l向某家報(bào)社訂閱報(bào)紙,只要他們有新報(bào)紙出版,就會(huì)向你送來。只要你是他們的客戶,你就會(huì)一直收到新報(bào)紙l當(dāng)你不想再看報(bào)紙的時(shí)候,取消訂閱,他們就不會(huì)再送新報(bào)紙來l只要報(bào)社還在運(yùn)營,就會(huì)一直有人(或單位)向他們訂閱報(bào)紙或取消訂閱報(bào)紙認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式l出版者訂閱者觀察者模式出版社即主題(Subject)訂閱者即觀察者(Observer)認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式222認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式要注冊(cè)(定閱)認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式
2、認(rèn)識(shí)觀察者模式8888我要?jiǎng)h除自己(取消訂閱)認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式認(rèn)識(shí)觀察者模式141414定義定義觀察者模式定義了對(duì)象之間的一對(duì)多依賴,這樣一來,當(dāng)一個(gè)對(duì)象改變狀態(tài)時(shí),它的所有依賴者都會(huì)收到通知并自動(dòng)更新觀察者模式觀察者模式l觀察者模式定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽某一個(gè)主題對(duì)象。這個(gè)主題對(duì)象在狀態(tài)上發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,讓它們能夠自動(dòng)更新自己。觀察者模式觀察者模式意圖意圖定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,以便當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并自動(dòng)更新觀察者模式觀察者模式l結(jié)構(gòu)圖觀察者模式觀察者模式l結(jié)構(gòu)圖各角色
3、解析:lSubject抽象主題:提供一個(gè)接口,可增加和刪除觀察者對(duì)象lConcreteSubject具體主題:當(dāng)其內(nèi)部狀態(tài)改變時(shí),給所有登記過的觀察者發(fā)出通知lObserver抽象觀察者:為所有的具體觀察者定義一個(gè)接口,在得到主題的通知時(shí)更新自己lConcreteObserver具體觀察者:實(shí)現(xiàn)抽象觀察者角色所要求的更新接口,以便使本身的狀態(tài)與主題的狀態(tài)相協(xié)調(diào)觀察者模式觀察者模式l適用場(chǎng)景:1.當(dāng)一個(gè)抽象模型有兩個(gè)方面,其中一個(gè)方面依賴于另一個(gè)方面2.當(dāng)對(duì)一個(gè)對(duì)象的改變需要同時(shí)改變其它對(duì)象,而不知道具體有多少個(gè)對(duì)象待改變3.當(dāng)一個(gè)對(duì)象必須通知其它對(duì)象,而它又不能假定其它對(duì)象是誰。換句話說,你不
4、希望這些對(duì)象是緊密耦合的觀察者模式觀察者模式缺點(diǎn):缺點(diǎn):由于觀察者并不知道由于觀察者并不知道其他觀察者的存在,它其他觀察者的存在,它可能對(duì)目標(biāo)的最終代價(jià)可能對(duì)目標(biāo)的最終代價(jià)一無所知,可能會(huì)引起一無所知,可能會(huì)引起意外的更新意外的更新優(yōu)點(diǎn):優(yōu)點(diǎn):1、觀察者和主題之、觀察者和主題之間的耦合度較小間的耦合度較小2、支持廣播通信、支持廣播通信觀察者模式體現(xiàn)的設(shè)計(jì)原則觀察者模式體現(xiàn)的設(shè)計(jì)原則l思考:l觀察者模式是如何遵循“封裝變化點(diǎn)”、“針對(duì)抽象編程”及“多用組合,少用繼承”等設(shè)計(jì)原則的?觀察者模式體現(xiàn)的設(shè)計(jì)原則觀察者模式體現(xiàn)的設(shè)計(jì)原則設(shè)計(jì)原則設(shè)計(jì)原則“開閉原則”,也即是對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。觀察者模
5、式體現(xiàn)的設(shè)計(jì)原則觀察者模式體現(xiàn)的設(shè)計(jì)原則觀察者模式體現(xiàn)的設(shè)計(jì)原則觀察者模式體現(xiàn)的設(shè)計(jì)原則設(shè)計(jì)原則設(shè)計(jì)原則“里氏替換原則”,也即是子類能替換父類。觀察者模式體現(xiàn)的設(shè)計(jì)原則觀察者模式體現(xiàn)的設(shè)計(jì)原則設(shè)計(jì)原則設(shè)計(jì)原則為了交互對(duì)象之間的松耦合而努力。觀察者模式的應(yīng)用觀察者模式的應(yīng)用l練習(xí)一:觀察者模式的應(yīng)用觀察者模式的應(yīng)用l練習(xí)一分析:氣象站:氣象站:由WeatherData對(duì)象負(fù)責(zé)追蹤目前的天氣狀況(溫度、濕度、氣壓)。有三種布告板,分別顯示目前的狀況、氣象統(tǒng)計(jì)及簡(jiǎn)單的預(yù)報(bào)。當(dāng)WeatherObject對(duì)象獲得最新的測(cè)量數(shù)據(jù)時(shí),三種布告板必須實(shí)時(shí)更新結(jié)合觀察者模式,給出其結(jié)合觀察者模式,給出其設(shè)計(jì)方案
6、?設(shè)計(jì)方案?觀察者模式的應(yīng)用觀察者模式的應(yīng)用觀察者模式的應(yīng)用觀察者模式的應(yīng)用l練習(xí)二:l某程序以多種不同的形式展示相同的數(shù)據(jù),展示的方式可能是表格、柱狀圖、餅圖等。當(dāng)數(shù)據(jù)發(fā)生變化時(shí),所有的展示方式都需要同步更新。l如何設(shè)計(jì),來靈活應(yīng)對(duì)展示方式的不確定性呢?觀察者模式的應(yīng)用觀察者模式的應(yīng)用觀察者模式的應(yīng)用觀察者模式的應(yīng)用l練習(xí)三:l在機(jī)房上課時(shí)間,老師若有事出去一下,這時(shí)班里同學(xué)有打游戲、看電影的等。這些玩的同學(xué)一般都會(huì)找一個(gè)“放哨”的,如果老師回來了就讓通知他們。如果這個(gè)“放哨”的同學(xué)沒有注意到老師回來了,也即是沒有通知正在玩的同學(xué)說老師回來了,想想后果怎么樣?這個(gè)時(shí)候肯定是老師本人“通知”正在玩的同學(xué)。l結(jié)合此場(chǎng)景,利用觀察者模式,給出其設(shè)計(jì)類圖觀察者模式的應(yīng)用觀察者模式的應(yīng)用觀察者模式觀察者模式l作業(yè)l班會(huì)通知l班長臨時(shí)通知大家一件事,輔導(dǎo)員有事,班會(huì)取消不。當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房屋租賃雙方年度續(xù)約協(xié)議書
- 二零二五年度民宿特色墻繪設(shè)計(jì)合作協(xié)議
- 二零二五年度資質(zhì)借用及投標(biāo)全流程管理合作協(xié)議
- 二零二五年度深圳市文化創(chuàng)意產(chǎn)業(yè)勞動(dòng)合同范本
- 2025年度橋梁建設(shè)項(xiàng)目施工合同協(xié)議書
- 二零二五年度酒類品牌全國招商代理合同
- 二零二五年度股東分紅協(xié)議書模板(合伙企業(yè))
- 二零二五年度農(nóng)民工勞動(dòng)保護(hù)及安全生產(chǎn)管理合同
- 二零二五年度家庭私人家教全學(xué)科輔導(dǎo)合同
- 二零二五年度智慧社區(qū)建設(shè)合同清單模板范例
- 國際貿(mào)易運(yùn)輸方式課件
- 南陽理工學(xué)院畢業(yè)論文格式規(guī)范
- SolidWorks入門教程(很全面)PPT課件
- 日語五十音圖(清晰打印版)92905
- 環(huán)境工程概預(yù)算(ppt)
- 新舊會(huì)計(jì)科目對(duì)照表
- 2019寧波地產(chǎn)品牌半程馬拉松 (海景風(fēng)情 健康寧波主題)活動(dòng)策劃方案-41P
- 醫(yī)用耗材超常預(yù)警和評(píng)價(jià)制度
- 性格色彩培訓(xùn)-團(tuán)隊(duì)培訓(xùn)必備
- 拆遷安置房小區(qū)物業(yè)管理的問題與對(duì)策
- 【教學(xué)設(shè)計(jì)】審定新北師大版六年級(jí)下冊(cè)數(shù)學(xué)《圖形的運(yùn)動(dòng)》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論