版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第17章,職責鏈模式,劉 偉 weiliu_,本章教學內(nèi)容,行為型模式 行為型模式概述 行為型模式簡介 職責鏈模式 模式動機與定義 模式結(jié)構(gòu)與分析 模式實例與解析 模式效果與應用 模式擴展,行為型模式,行為型模式概述 行為型模式(Behavioral Pattern)是對在不同的對象之間劃分責任和算法的抽象化。 行為型模式不僅僅關(guān)注類和對象的結(jié)構(gòu),而且重點關(guān)注它們之間的相互作用。 通過行為型模式,可以更加清晰地劃分類與對象的職責,并研究系統(tǒng)在運行時實例對象之間的交互。在系統(tǒng)運行時,對象并不是孤立的,它們可以通過相互通信與協(xié)作完成某些復雜功能,一個對象在運行時也將影響到其他對象的運行。,行為型模
2、式,行為型模式概述 行為型模式分為類行為型模式和對象行為型模式兩種: 類行為型模式:類的行為型模式使用繼承關(guān)系在幾個類之間分配行為,類行為型模式主要通過多態(tài)等方式來分配父類與子類的職責。 對象行為型模式:對象的行為型模式則使用對象的聚合關(guān)聯(lián)關(guān)系來分配行為,對象行為型模式主要是通過對象關(guān)聯(lián)等方式來分配兩個或多個類的職責。根據(jù)“合成復用原則”,系統(tǒng)中要盡量使用關(guān)聯(lián)關(guān)系來取代繼承關(guān)系,因此大部分行為型設(shè)計模式都屬于對象行為型設(shè)計模式。,行為型模式,行為型模式簡介 職責鏈模式(Chain of Responsibility) 命令模式(Command) 解釋器模式(Interpreter) 迭代器模式
3、(Iterator) 中介者模式(Mediator) 備忘錄模式(Memento) 觀察者模式(Observer) 狀態(tài)模式(State) 策略模式(Strategy) 模板方法模式(Template Method) 訪問者模式(Visitor),職責鏈模式,模式動機,職責鏈模式,模式動機 職責鏈可以是一條直線、一個環(huán)或者一個樹形結(jié)構(gòu),最常見的職責鏈是直線型,即沿著一條單向的鏈來傳遞請求。 鏈上的每一個對象都是請求處理者,職責鏈模式可以將請求的處理者組織成一條鏈,并使請求沿著鏈傳遞,由鏈上的處理者對請求進行相應的處理,客戶端無須關(guān)心請求的處理細節(jié)以及請求的傳遞,只需將請求發(fā)送到鏈上即可,將請求
4、的發(fā)送者和請求的處理者解耦。這就是職責鏈模式的模式動機。,職責鏈模式,模式定義 職責鏈模式(Chain of Responsibility Pattern):避免請求發(fā)送者與接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象連接成一條鏈,并且沿著這條鏈傳遞請求,直到有對象處理它為止。由于英文翻譯的不同,職責鏈模式又稱為責任鏈模式,它是一種對象行為型模式。,職責鏈模式,模式定義 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,職責鏈模式,模式結(jié)構(gòu),職責鏈模式,模式結(jié)構(gòu) 職責鏈模式包含如下角色: Handler: 抽象處理者 ConcreteHandler: 具體處理者 Client: 客戶類,職責鏈模式,模式分析 在職責鏈模式里,很多對象由每一個對象對其下家的引用而連接起來形成一條鏈。 請
6、求在這條鏈上傳遞,直到鏈上的某一個對象處理此請求為止。 發(fā)出這個請求的客戶端并不知道鏈上的哪一個對象最終處理這個請求,這使得系統(tǒng)可以在不影響客戶端的情況下動態(tài)地重新組織鏈和分配責任。,職責鏈模式,模式分析 典型的抽象處理者代碼:,職責鏈模式,模式分析 典型的具體處理者代碼:,職責鏈模式,職責鏈模式實例與解析 實例:審批假條 某OA系統(tǒng)需要提供一個假條審批的模塊,如果員工請假天數(shù)小于3天,主任可以審批該假條;如果員工請假天數(shù)大于等于3天,小于10天,經(jīng)理可以審批;如果員工請假天數(shù)大于等于10天,小于30天,總經(jīng)理可以審批;如果超過30天,總經(jīng)理也不能審批,提示相應的拒絕信息。,職責鏈模式,職責鏈
7、模式實例與解析 實例:審批假條,職責鏈模式,職責鏈模式實例與解析 實例:審批假條 參考代碼 (Chapter 17 CoRsample01),演示,職責鏈模式,模式優(yōu)缺點 職責鏈模式的優(yōu)點 降低耦合度 可簡化對象的相互連接 增強給對象指派職責的靈活性 增加新的請求處理類很方便,職責鏈模式,模式優(yōu)缺點 職責鏈模式的缺點 不能保證請求一定被接收。 系統(tǒng)性能將受到一定影響,而且在進行代碼調(diào)試時不太方便;可能會造成循環(huán)調(diào)用。,職責鏈模式,模式適用環(huán)境 在以下情況下可以使用職責鏈模式: 有多個對象可以處理同一個請求,具體哪個對象處理該請求由運行時刻自動確定。 在不明確指定接收者的情況下,向多個對象中的一
8、個提交一個請求。 可動態(tài)指定一組對象處理請求。,職責鏈模式,模式應用 (1) Java中的異常處理機制,職責鏈模式,模式應用 (2) 早期的Java AWT事件模型(JDK 1.0及更早) :事件浮升(Event Bubbling)機制。 JavaScript事件浮升機制:,職責鏈模式,模式擴展 純與不純的職責鏈模式 一個純的職責鏈模式要求一個具體處理者對象只能在兩個行為中選擇一個:一個是承擔責任,另一個是把責任推給下家。不允許出現(xiàn)某一個具體處理者對象在承擔了一部分責任后又將責任向下傳的情況。 在一個純的職責鏈模式里面,一個請求必須被某一個處理者對象所接收;在一個不純的職責鏈模式里面,一個請求
9、可以最終不被任何接收端對象所接收。,本章小結(jié),行為型模式是對在不同的對象之間劃分責任和算法的抽象化。行為型模式不僅僅關(guān)注類和對象的結(jié)構(gòu),而且重點關(guān)注它們之間的相互作用。通過行為型模式,可以更加清晰地劃分類與對象的職責,并研究系統(tǒng)在運行時實例對象之間的交互。行為型模式可以分為類行為型模式和對象行為型模式兩種。 職責鏈模式可以避免請求發(fā)送者與接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象連接成一條鏈,并且沿著這條鏈傳遞請求,直到有對象處理它為止。它是一種對象行為型模式。 職責鏈模式包含兩個角色:抽象處理者定義了一個處理請求的接口;具體處理者是抽象處理者的子類,它可以處理用戶請求。,本章小結(jié),在職責鏈模式里,很多對象由每一個對象對其下家的引用而連接起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某一個對象決定處理此請求。發(fā)出這個請求的客戶端并不知道鏈上的哪一個對象最終處理這個請求,這使得系統(tǒng)可以在不影響客戶端的情況下動態(tài)地重新組織鏈和分配責任。 職責鏈模式的主要優(yōu)點在于可以降低系統(tǒng)的耦合度,簡化對象的相互連接,同時增強給對象指派職責的靈活性,增加新的請求處理類也很方便;其主要缺點在于不能保證請求一定被接收,且對于比較長的職
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家政服務培訓擦玻璃課件
- 家政收納員培訓課件
- 安全培訓證書含金量課件
- 《動畫場景設(shè)計(第二版)》課件 第一單元 動畫場景概述
- 培訓討論議題
- 培訓演講教學課件
- 汽車性能與檢測技術(shù) 課件 項目二 汽車底盤性能檢測
- 今冬明春安全培訓會課件
- 務實求效培訓課件模板
- 制作培訓會背景圖
- DBJ-T 15-30-2022 鋁合金門窗工程技術(shù)規(guī)范
- 2024屆廣東省高三三校12月聯(lián)考英語試題及答案
- 城市設(shè)計編制標準 DG-TJ08-2402-2022
- 粉煤灰在高速公路基層中的應用
- 教學設(shè)計中的學科整合與跨學科學習
- 2024年廣東省粵科金融集團有限公司招聘筆試參考題庫含答案解析
- 消防設(shè)施維保投標方案(技術(shù)方案)
- 設(shè)備綜合效率OEE統(tǒng)計表(使用)
- WATERS公司的UPLCTQD培訓資料MS7校正課件
- 【超星爾雅學習通】航空與航天網(wǎng)課章節(jié)答案
- 2022年福州大學計算機科學與技術(shù)專業(yè)《操作系統(tǒng)》科目期末試卷B(有答案)
評論
0/150
提交評論