![17 第17章 職責(zé)鏈模式.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/10/082b0025-4e9b-4cca-b04c-fe6344891ff1/082b0025-4e9b-4cca-b04c-fe6344891ff11.gif)
![17 第17章 職責(zé)鏈模式.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/10/082b0025-4e9b-4cca-b04c-fe6344891ff1/082b0025-4e9b-4cca-b04c-fe6344891ff12.gif)
![17 第17章 職責(zé)鏈模式.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/10/082b0025-4e9b-4cca-b04c-fe6344891ff1/082b0025-4e9b-4cca-b04c-fe6344891ff13.gif)
![17 第17章 職責(zé)鏈模式.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/10/082b0025-4e9b-4cca-b04c-fe6344891ff1/082b0025-4e9b-4cca-b04c-fe6344891ff14.gif)
![17 第17章 職責(zé)鏈模式.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/10/082b0025-4e9b-4cca-b04c-fe6344891ff1/082b0025-4e9b-4cca-b04c-fe6344891ff15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第17章,職責(zé)鏈模式,劉 偉 weiliu_,本章教學(xué)內(nèi)容,行為型模式 行為型模式概述 行為型模式簡介 職責(zé)鏈模式 模式動(dòng)機(jī)與定義 模式結(jié)構(gòu)與分析 模式實(shí)例與解析 模式效果與應(yīng)用 模式擴(kuò)展,行為型模式,行為型模式概述 行為型模式(Behavioral Pattern)是對(duì)在不同的對(duì)象之間劃分責(zé)任和算法的抽象化。 行為型模式不僅僅關(guān)注類和對(duì)象的結(jié)構(gòu),而且重點(diǎn)關(guān)注它們之間的相互作用。 通過行為型模式,可以更加清晰地劃分類與對(duì)象的職責(zé),并研究系統(tǒng)在運(yùn)行時(shí)實(shí)例對(duì)象之間的交互。在系統(tǒng)運(yùn)行時(shí),對(duì)象并不是孤立的,它們可以通過相互通信與協(xié)作完成某些復(fù)雜功能,一個(gè)對(duì)象在運(yùn)行時(shí)也將影響到其他對(duì)象的運(yùn)行。,行為型模
2、式,行為型模式概述 行為型模式分為類行為型模式和對(duì)象行為型模式兩種: 類行為型模式:類的行為型模式使用繼承關(guān)系在幾個(gè)類之間分配行為,類行為型模式主要通過多態(tài)等方式來分配父類與子類的職責(zé)。 對(duì)象行為型模式:對(duì)象的行為型模式則使用對(duì)象的聚合關(guān)聯(lián)關(guān)系來分配行為,對(duì)象行為型模式主要是通過對(duì)象關(guān)聯(lián)等方式來分配兩個(gè)或多個(gè)類的職責(zé)。根據(jù)“合成復(fù)用原則”,系統(tǒng)中要盡量使用關(guān)聯(lián)關(guān)系來取代繼承關(guān)系,因此大部分行為型設(shè)計(jì)模式都屬于對(duì)象行為型設(shè)計(jì)模式。,行為型模式,行為型模式簡介 職責(zé)鏈模式(Chain of Responsibility) 命令模式(Command) 解釋器模式(Interpreter) 迭代器模式
3、(Iterator) 中介者模式(Mediator) 備忘錄模式(Memento) 觀察者模式(Observer) 狀態(tài)模式(State) 策略模式(Strategy) 模板方法模式(Template Method) 訪問者模式(Visitor),職責(zé)鏈模式,模式動(dòng)機(jī),職責(zé)鏈模式,模式動(dòng)機(jī) 職責(zé)鏈可以是一條直線、一個(gè)環(huán)或者一個(gè)樹形結(jié)構(gòu),最常見的職責(zé)鏈?zhǔn)侵本€型,即沿著一條單向的鏈來傳遞請(qǐng)求。 鏈上的每一個(gè)對(duì)象都是請(qǐng)求處理者,職責(zé)鏈模式可以將請(qǐng)求的處理者組織成一條鏈,并使請(qǐng)求沿著鏈傳遞,由鏈上的處理者對(duì)請(qǐng)求進(jìn)行相應(yīng)的處理,客戶端無須關(guān)心請(qǐng)求的處理細(xì)節(jié)以及請(qǐng)求的傳遞,只需將請(qǐng)求發(fā)送到鏈上即可,將請(qǐng)求
4、的發(fā)送者和請(qǐng)求的處理者解耦。這就是職責(zé)鏈模式的模式動(dòng)機(jī)。,職責(zé)鏈模式,模式定義 職責(zé)鏈模式(Chain of Responsibility Pattern):避免請(qǐng)求發(fā)送者與接收者耦合在一起,讓多個(gè)對(duì)象都有可能接收請(qǐng)求,將這些對(duì)象連接成一條鏈,并且沿著這條鏈傳遞請(qǐng)求,直到有對(duì)象處理它為止。由于英文翻譯的不同,職責(zé)鏈模式又稱為責(zé)任鏈模式,它是一種對(duì)象行為型模式。,職責(zé)鏈模式,模式定義 Chain of Responsibility Pattern: Avoid coupling the sender of a request to its receiver by giving more than
5、 one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. Frequency of use: medium low,職責(zé)鏈模式,模式結(jié)構(gòu),職責(zé)鏈模式,模式結(jié)構(gòu) 職責(zé)鏈模式包含如下角色: Handler: 抽象處理者 ConcreteHandler: 具體處理者 Client: 客戶類,職責(zé)鏈模式,模式分析 在職責(zé)鏈模式里,很多對(duì)象由每一個(gè)對(duì)象對(duì)其下家的引用而連接起來形成一條鏈。 請(qǐng)
6、求在這條鏈上傳遞,直到鏈上的某一個(gè)對(duì)象處理此請(qǐng)求為止。 發(fā)出這個(gè)請(qǐng)求的客戶端并不知道鏈上的哪一個(gè)對(duì)象最終處理這個(gè)請(qǐng)求,這使得系統(tǒng)可以在不影響客戶端的情況下動(dòng)態(tài)地重新組織鏈和分配責(zé)任。,職責(zé)鏈模式,模式分析 典型的抽象處理者代碼:,職責(zé)鏈模式,模式分析 典型的具體處理者代碼:,職責(zé)鏈模式,職責(zé)鏈模式實(shí)例與解析 實(shí)例:審批假條 某OA系統(tǒng)需要提供一個(gè)假條審批的模塊,如果員工請(qǐng)假天數(shù)小于3天,主任可以審批該假條;如果員工請(qǐng)假天數(shù)大于等于3天,小于10天,經(jīng)理可以審批;如果員工請(qǐng)假天數(shù)大于等于10天,小于30天,總經(jīng)理可以審批;如果超過30天,總經(jīng)理也不能審批,提示相應(yīng)的拒絕信息。,職責(zé)鏈模式,職責(zé)鏈
7、模式實(shí)例與解析 實(shí)例:審批假條,職責(zé)鏈模式,職責(zé)鏈模式實(shí)例與解析 實(shí)例:審批假條 參考代碼 (Chapter 17 CoRsample01),演示,職責(zé)鏈模式,模式優(yōu)缺點(diǎn) 職責(zé)鏈模式的優(yōu)點(diǎn) 降低耦合度 可簡化對(duì)象的相互連接 增強(qiáng)給對(duì)象指派職責(zé)的靈活性 增加新的請(qǐng)求處理類很方便,職責(zé)鏈模式,模式優(yōu)缺點(diǎn) 職責(zé)鏈模式的缺點(diǎn) 不能保證請(qǐng)求一定被接收。 系統(tǒng)性能將受到一定影響,而且在進(jìn)行代碼調(diào)試時(shí)不太方便;可能會(huì)造成循環(huán)調(diào)用。,職責(zé)鏈模式,模式適用環(huán)境 在以下情況下可以使用職責(zé)鏈模式: 有多個(gè)對(duì)象可以處理同一個(gè)請(qǐng)求,具體哪個(gè)對(duì)象處理該請(qǐng)求由運(yùn)行時(shí)刻自動(dòng)確定。 在不明確指定接收者的情況下,向多個(gè)對(duì)象中的一
8、個(gè)提交一個(gè)請(qǐng)求。 可動(dòng)態(tài)指定一組對(duì)象處理請(qǐng)求。,職責(zé)鏈模式,模式應(yīng)用 (1) Java中的異常處理機(jī)制,職責(zé)鏈模式,模式應(yīng)用 (2) 早期的Java AWT事件模型(JDK 1.0及更早) :事件浮升(Event Bubbling)機(jī)制。 JavaScript事件浮升機(jī)制:,職責(zé)鏈模式,模式擴(kuò)展 純與不純的職責(zé)鏈模式 一個(gè)純的職責(zé)鏈模式要求一個(gè)具體處理者對(duì)象只能在兩個(gè)行為中選擇一個(gè):一個(gè)是承擔(dān)責(zé)任,另一個(gè)是把責(zé)任推給下家。不允許出現(xiàn)某一個(gè)具體處理者對(duì)象在承擔(dān)了一部分責(zé)任后又將責(zé)任向下傳的情況。 在一個(gè)純的職責(zé)鏈模式里面,一個(gè)請(qǐng)求必須被某一個(gè)處理者對(duì)象所接收;在一個(gè)不純的職責(zé)鏈模式里面,一個(gè)請(qǐng)求
9、可以最終不被任何接收端對(duì)象所接收。,本章小結(jié),行為型模式是對(duì)在不同的對(duì)象之間劃分責(zé)任和算法的抽象化。行為型模式不僅僅關(guān)注類和對(duì)象的結(jié)構(gòu),而且重點(diǎn)關(guān)注它們之間的相互作用。通過行為型模式,可以更加清晰地劃分類與對(duì)象的職責(zé),并研究系統(tǒng)在運(yùn)行時(shí)實(shí)例對(duì)象之間的交互。行為型模式可以分為類行為型模式和對(duì)象行為型模式兩種。 職責(zé)鏈模式可以避免請(qǐng)求發(fā)送者與接收者耦合在一起,讓多個(gè)對(duì)象都有可能接收請(qǐng)求,將這些對(duì)象連接成一條鏈,并且沿著這條鏈傳遞請(qǐng)求,直到有對(duì)象處理它為止。它是一種對(duì)象行為型模式。 職責(zé)鏈模式包含兩個(gè)角色:抽象處理者定義了一個(gè)處理請(qǐng)求的接口;具體處理者是抽象處理者的子類,它可以處理用戶請(qǐng)求。,本章小結(jié),在職責(zé)鏈模式里,很多對(duì)象由每一個(gè)對(duì)象對(duì)其下家的引用而連接起來形成一條鏈。請(qǐng)求在這個(gè)鏈上傳遞,直到鏈上的某一個(gè)對(duì)象決定處理此請(qǐng)求。發(fā)出這個(gè)請(qǐng)求的客戶端并不知道鏈上的哪一個(gè)對(duì)象最終處理這個(gè)請(qǐng)求,這使得系統(tǒng)可以在不影響客戶端的情況下動(dòng)態(tài)地重新組織鏈和分配責(zé)任。 職責(zé)鏈模式的主要優(yōu)點(diǎn)在于可以降低系統(tǒng)的耦合度,簡化對(duì)象的相互連接,同時(shí)增強(qiáng)給對(duì)象指派職責(zé)的靈活性,增加新的請(qǐng)求處理類也很方便;其主要缺點(diǎn)在于不能保證請(qǐng)求一定被接收,且對(duì)于比較長的職
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石棉摩擦制品項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國電動(dòng)玩具飛機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年橡膠發(fā)泡墊項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國手搖交直流發(fā)電機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年履帶式自動(dòng)數(shù)粒包裝線項(xiàng)目可行性研究報(bào)告
- 2025年交變負(fù)荷試驗(yàn)機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年202含氫硅油項(xiàng)目可行性研究報(bào)告
- 2025至2030年金屬沙發(fā)項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年蓄熱瓷管項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年電動(dòng)日期編碼機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 贏在團(tuán)隊(duì)執(zhí)行力課件
- 慢性胰腺炎課件
- 北京理工大學(xué)應(yīng)用光學(xué)課件第四章
- 陰道鏡幻燈課件
- 2022年山東司法警官職業(yè)學(xué)院單招語文試題及答案解析
- PCB行業(yè)安全生產(chǎn)常見隱患及防范措施課件
- DB32∕T 186-2015 建筑消防設(shè)施檢測(cè)技術(shù)規(guī)程
- 2022年福建泉州中考英語真題【含答案】
- 汽車座椅骨架的焊接夾具畢業(yè)設(shè)計(jì)說明書(共23頁)
- 露天礦山職業(yè)危害預(yù)先危險(xiǎn)分析表
- 淺談固定資產(chǎn)的審計(jì)
評(píng)論
0/150
提交評(píng)論