0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計模式行為型:責(zé)任鏈模式

冬至子 ? 來源:碼農(nóng)架構(gòu) ? 作者:小智 ? 2023-06-06 17:33 ? 次閱讀

將請求發(fā)送者和請求接受者解耦,讓請求的接受者形成鏈?zhǔn)讲僮?,所有人都能夠接受接受到請求,直到有人處理請求?/p>

結(jié)構(gòu)圖

圖片

角色與理解

  • 責(zé)任鏈模式包含如下角色
  • Handler(抽象處理者):所有具體處理者的父類,一般定義為抽象類,定義了一個統(tǒng)一的處理入口,以及維持了一個抽象處理者類型對象的引用,用于形成鏈?zhǔn)教幚碚?/li>
  • ConcreteHandler(具體處理者):繼承抽象處理者,實(shí)現(xiàn)統(tǒng)一的處理入口,將自己無法處理的請求轉(zhuǎn)發(fā)給下一個處理者
  • 處理鏈的形成是在客戶端完成的,以及處理鏈的順序也是客戶端決定的
  • 純的責(zé)任鏈模式
  • 處理者只有兩種選擇,要么全部處理請求,要么全部不處理,不能只處理一部分請求
  • 請求必須被處理,不存在請求最終未被處理的情況發(fā)生
  • 不純的責(zé)任鏈模式
  • 可以處理部分,然后將請求轉(zhuǎn)發(fā)給下一個處理者處理
  • 請求可以不被所有處理者處理

核心代碼

  • 抽象處理者

圖片

  • 具體處理者

圖片

  • 客戶端

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19342

    瀏覽量

    230224
  • handler
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    3035
收藏 人收藏

    評論

    相關(guān)推薦

    基于入侵行為模式的告警關(guān)聯(lián)

    本文提出了一種基于入侵行為模式的告警關(guān)聯(lián)方式。入侵行為模式是定義在時間基礎(chǔ)上的一組謂詞公式,其實(shí)質(zhì)是通過時間限制聯(lián)系在一起的入侵事件的集合。該方法在對大量告
    發(fā)表于 08-13 08:35 ?6次下載

    什么是菊花模式 星型模式

    什么是菊花模式 星型模式 菊花模式   菊花
    發(fā)表于 12-05 09:00 ?8542次閱讀

    什么是責(zé)任?

    責(zé)任模式行為模式的一種,它將需要觸發(fā)的Handler組成一條,發(fā)送者將請求發(fā)給
    的頭像 發(fā)表于 02-16 14:41 ?967次閱讀

    責(zé)任設(shè)計模式詳解

    責(zé)任模式是一種行為設(shè)計模式, 允許你將請求沿著處理者進(jìn)行發(fā)送。收到請求后, 每個處理者均可對
    的頭像 發(fā)表于 05-22 15:12 ?445次閱讀
    <b class='flag-5'>責(zé)任</b><b class='flag-5'>鏈</b>設(shè)計<b class='flag-5'>模式</b>詳解

    設(shè)計模式:備忘錄設(shè)計模式

    備忘錄設(shè)計模式(Memento Design Pattern)是一種行為設(shè)計模式,它的主要目的是在不破壞對象封裝性的前提下,捕捉和保存一個對象的內(nèi)部狀態(tài)
    的頭像 發(fā)表于 06-06 11:19 ?812次閱讀

    設(shè)計模式行為:中介模式

    提供一個中介者完成對一系列操作的封裝,降低對象間的系統(tǒng)耦合度。中介者模式又稱為調(diào)停者模式。
    的頭像 發(fā)表于 06-06 17:42 ?708次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:中介<b class='flag-5'>模式</b>

    設(shè)計模式行為:備忘錄模式

    備忘錄模式(Memento Pattern)保存一個對象的某個狀態(tài),以便在適當(dāng)?shù)臅r候恢復(fù)對象。備忘錄模式屬于行為模式。
    的頭像 發(fā)表于 06-07 11:16 ?866次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:備忘錄<b class='flag-5'>模式</b>

    設(shè)計模式行為:策略模式

    在策略模式(Strategy Pattern)中,一個類的行為或其算法可以在運(yùn)行時更改。這種類型的設(shè)計模式屬于行為模式。
    的頭像 發(fā)表于 06-07 11:18 ?674次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:策略<b class='flag-5'>模式</b>

    設(shè)計模式行為:狀態(tài)模式

    在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。這種類型的設(shè)計模式屬于行為模式
    的頭像 發(fā)表于 06-07 11:20 ?631次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:狀態(tài)<b class='flag-5'>模式</b>

    設(shè)計模式行為:訪問者模式

    在訪問者模式(Visitor Pattern)中,我們使用了一個訪問者類,它改變了元素類的執(zhí)行算法。
    的頭像 發(fā)表于 06-07 15:11 ?766次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:訪問者<b class='flag-5'>模式</b>

    設(shè)計模式行為:模板方法模式

    在模板模式中,一個抽象類公開定義了執(zhí)行它的方法的方式/模板。
    的頭像 發(fā)表于 06-07 15:13 ?601次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:模板方法<b class='flag-5'>模式</b>

    設(shè)計模式行為:觀察者模式

    定義對象之間的一種一對多依賴關(guān)系,使得每一個對象發(fā)生狀態(tài)的變化時,其相關(guān)依賴對象皆得到通知并被自動更新,又稱為發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽器模式或從屬者模式。
    的頭像 發(fā)表于 06-07 16:56 ?684次閱讀
    設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:觀察者<b class='flag-5'>模式</b>

    行為設(shè)計模式在UVM中的應(yīng)用

    接下來介紹行為設(shè)計模式在UVM中的應(yīng)用。
    的頭像 發(fā)表于 08-09 14:01 ?724次閱讀
    <b class='flag-5'>行為</b><b class='flag-5'>型</b>設(shè)計<b class='flag-5'>模式</b>在UVM中的應(yīng)用

    設(shè)計模式責(zé)任模式概述

    設(shè)計模式是一些被反復(fù)使用的、具有普遍性的設(shè)計解決方案,它們是在特定情境下對軟件設(shè)計問題的成功解決方式的總結(jié)和歸納。
    的頭像 發(fā)表于 09-27 09:54 ?698次閱讀
    設(shè)計<b class='flag-5'>模式</b>之<b class='flag-5'>責(zé)任</b><b class='flag-5'>鏈</b><b class='flag-5'>模式</b>概述

    還在自己實(shí)現(xiàn)責(zé)任?我建議你造輪子之前先看看這個開源項目

    1. 前言 設(shè)計模式在軟件開發(fā)中被廣泛使用。通過使用設(shè)計模式,開發(fā)人員可以更加高效地開發(fā)出高質(zhì)量的軟件系統(tǒng),提高代碼的可讀性、可維護(hù)性和可擴(kuò)展性。 責(zé)任
    的頭像 發(fā)表于 09-20 14:38 ?375次閱讀
    還在自己實(shí)現(xiàn)<b class='flag-5'>責(zé)任</b><b class='flag-5'>鏈</b>?我建議你造輪子之前先看看這個開源項目