將請(qǐng)求發(fā)送者和請(qǐng)求接受者解耦,讓請(qǐng)求的接受者形成鏈?zhǔn)讲僮?,所有人都能夠接受接受到?qǐng)求,直到有人處理請(qǐng)求。
結(jié)構(gòu)圖
角色與理解
- 責(zé)任鏈模式包含如下角色
- Handler(抽象處理者):所有具體處理者的父類,一般定義為抽象類,定義了一個(gè)統(tǒng)一的處理入口,以及維持了一個(gè)抽象處理者類型對(duì)象的引用,用于形成鏈?zhǔn)教幚碚?/li>
- ConcreteHandler(具體處理者):繼承抽象處理者,實(shí)現(xiàn)統(tǒng)一的處理入口,將自己無(wú)法處理的請(qǐng)求轉(zhuǎn)發(fā)給下一個(gè)處理者
- 處理鏈的形成是在客戶端完成的,以及處理鏈的順序也是客戶端決定的
- 純的責(zé)任鏈模式
- 處理者只有兩種選擇,要么全部處理請(qǐng)求,要么全部不處理,不能只處理一部分請(qǐng)求
- 請(qǐng)求必須被處理,不存在請(qǐng)求最終未被處理的情況發(fā)生
- 不純的責(zé)任鏈模式
- 可以處理部分,然后將請(qǐng)求轉(zhuǎn)發(fā)給下一個(gè)處理者處理
- 請(qǐng)求可以不被所有處理者處理
核心代碼
- 抽象處理者
- 具體處理者
- 客戶端
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235358 -
handler
+關(guān)注
關(guān)注
0文章
7瀏覽量
3196
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
基于入侵行為模式的告警關(guān)聯(lián)
本文提出了一種基于入侵行為模式的告警關(guān)聯(lián)方式。入侵行為模式是定義在時(shí)間基礎(chǔ)上的一組謂詞公式,其實(shí)質(zhì)是通過(guò)時(shí)間限制聯(lián)系在一起的入侵事件的集合。該方法在對(duì)大量告
發(fā)表于 08-13 08:35
?6次下載
什么是責(zé)任鏈?
責(zé)任鏈模式是行為模式的一種,它將需要觸發(fā)的Handler組成一條鏈,發(fā)送者將請(qǐng)求發(fā)給
責(zé)任鏈設(shè)計(jì)模式詳解
責(zé)任鏈模式是一種行為設(shè)計(jì)模式, 允許你將請(qǐng)求沿著處理者鏈進(jìn)行發(fā)送。收到請(qǐng)求后, 每個(gè)處理者均可對(duì)

設(shè)計(jì)模式:訪問(wèn)者設(shè)計(jì)模式
訪問(wèn)者設(shè)計(jì)模式是一種行為型設(shè)計(jì)模式,用于將算法與對(duì)象結(jié)構(gòu)分離。它允許你在不改變對(duì)象結(jié)構(gòu)的前提下定義新的操作。
設(shè)計(jì)模式行為型:備忘錄模式
備忘錄模式(Memento Pattern)保存一個(gè)對(duì)象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對(duì)象。備忘錄模式屬于行為型模式。

設(shè)計(jì)模式行為型:策略模式
在策略模式(Strategy Pattern)中,一個(gè)類的行為或其算法可以在運(yùn)行時(shí)更改。這種類型的設(shè)計(jì)模式屬于行為型模式。

設(shè)計(jì)模式行為型:狀態(tài)模式
在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。這種類型的設(shè)計(jì)模式屬于行為型模式。

設(shè)計(jì)模式行為型:觀察者模式
定義對(duì)象之間的一種一對(duì)多依賴關(guān)系,使得每一個(gè)對(duì)象發(fā)生狀態(tài)的變化時(shí),其相關(guān)依賴對(duì)象皆得到通知并被自動(dòng)更新,又稱為發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽(tīng)器模式或從屬者模式。

設(shè)計(jì)模式之責(zé)任鏈模式概述
設(shè)計(jì)模式是一些被反復(fù)使用的、具有普遍性的設(shè)計(jì)解決方案,它們是在特定情境下對(duì)軟件設(shè)計(jì)問(wèn)題的成功解決方式的總結(jié)和歸納。

還在自己實(shí)現(xiàn)責(zé)任鏈?我建議你造輪子之前先看看這個(gè)開(kāi)源項(xiàng)目
1. 前言 設(shè)計(jì)模式在軟件開(kāi)發(fā)中被廣泛使用。通過(guò)使用設(shè)計(jì)模式,開(kāi)發(fā)人員可以更加高效地開(kāi)發(fā)出高質(zhì)量的軟件系統(tǒng),提高代碼的可讀性、可維護(hù)性和可擴(kuò)展性。 責(zé)任鏈

評(píng)論