国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java設(shè)計(jì)模式(十五)責(zé)任鏈模式

這篇具有很好參考價值的文章主要介紹了java設(shè)計(jì)模式(十五)責(zé)任鏈模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

定義

責(zé)任鏈模式(Chain of Responsibility) 使多個對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接受者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有對象能夠處理它。

模式結(jié)構(gòu)

java設(shè)計(jì)模式(十五)責(zé)任鏈模式

角色職責(zé)

  1. 抽象處理類: 主要包含一個指向下一處理類的成員變量 nextHandler 和一個處理請求的方法 handRequest,handRequest 方法的主要思想是,如果滿足處理的條件,則有本處理類來進(jìn)行處理,否則由 nextHandler 來處理。

  2. 具體處理類: 具體處理類的主要是對具體的處理邏輯和處理的適用條件進(jìn)行實(shí)現(xiàn)。

  3. 客戶類(Client)角色: 創(chuàng)建處理鏈,并向鏈頭的具體處理者對象提交請求,它不關(guān)心處理細(xì)節(jié)和請求的傳遞過程。

代碼實(shí)現(xiàn)

抽象處理類:

abstract class Handler {
    private Handler next;

    public Handler getNext() {
        return next;
    }

    public void setNext(Handler next) {
        this.next = next;
    }

    public abstract void handleRequest(String request);
}

具體處理類:

public class ConcreteHandler1 extends Handler {
    @Override
    public void handleRequest(String request) {
        if ("one".equals(request)) {
            System.out.println("具體處理者1負(fù)責(zé)處理該請求!");

        } else {
            if (getNext() != null) {
                getNext().handleRequest(request);
            } else {
                System.out.println("沒有人處理該請求!");
            }
        }
    }
}

public class ConcreteHandler2 extends Handler {
    @Override
    public void handleRequest(String request) {
        if (request.equals("two")) {
            System.out.println("具體處理者2負(fù)責(zé)處理該請求!");
        } else {
            if (getNext() != null) {
                getNext().handleRequest(request);
            } else {
                System.out.println("沒有人處理該請求!");
            }
        }
    }
}

客戶端請求:

public class ChainOfResponsibilityPattern {
    public static void main(String[] args) {
        //組裝責(zé)任鏈
        Handler handler1 = new ConcreteHandler1();
        Handler handler2 = new ConcreteHandler2();
        handler1.setNext(handler2);
        //提交請求
        handler1.handleRequest("two");
    }
}

輸出結(jié)果:

具體處理者2負(fù)責(zé)處理該請求!

適用場景

1.有多個對象可以處理一個請求,哪個對象處理該請求由運(yùn)行時刻自動確定。
2.可動態(tài)指定一組對象處理請求,或添加新的處理者。
3.在不明確指定請求處理者的情況下,向多個處理者中的一個提交請求。

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
1.實(shí)現(xiàn)了請求發(fā)送者與請求處理者之間的松耦合
2.可動態(tài)添加責(zé)任對象、刪除責(zé)任對象、改變責(zé)任對象順序,非常靈活
3.每個責(zé)任對象專注于做自己的事情,職責(zé)明確
缺點(diǎn):
1.不能保證每個請求一定被處理。由于一個請求沒有明確的接收者,所以不能保證它一定會被處理,該請求可能一直傳到鏈的末端都得不到處理。
2.對比較長的職責(zé)鏈,請求的處理可能涉及多個處理對象,系統(tǒng)性能將受到一定影響。
3.職責(zé)鏈建立的合理性要靠客戶端來保證,增加了客戶端的復(fù)雜性,可能會由于職責(zé)鏈的錯誤設(shè)置而導(dǎo)致系統(tǒng)出錯,如可能會造成循環(huán)調(diào)用。
java設(shè)計(jì)模式(十五)責(zé)任鏈模式文章來源地址http://www.zghlxwxcb.cn/news/detail-474237.html

到了這里,關(guān)于java設(shè)計(jì)模式(十五)責(zé)任鏈模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 設(shè)計(jì)模式之責(zé)任鏈模式【Java實(shí)現(xiàn)】

    設(shè)計(jì)模式之責(zé)任鏈模式【Java實(shí)現(xiàn)】

    責(zé)任鏈(chain of Resposibility) 模式:為了避免請求發(fā)送者與多個請求處理者耦合在一起,于是將所有請求的處理者 通過前一對象記住其下一個對象的引用而連成一條鏈 ;當(dāng)有請求發(fā)生時,可將請求沿著這條鏈傳遞,直到有對象處理它位置。屬于對象行為型模式。 抽象處理者

    2024年02月12日
    瀏覽(20)
  • 【Java 設(shè)計(jì)模式】行為型之責(zé)任鏈模式

    責(zé)任鏈模式(Chain of Responsibility Pattern)是一種行為型設(shè)計(jì)模式,用于將請求發(fā)送者和接收者解耦,使得多個對象都有機(jī)會處理請求。責(zé)任鏈模式通過創(chuàng)建一個處理請求的鏈,將請求沿著鏈傳遞,直到有一個對象能夠處理為止。在本文中,我們將深入研究Java中責(zé)任鏈模式的定

    2024年01月24日
    瀏覽(23)
  • 【設(shè)計(jì)模式】Java 設(shè)計(jì)模式之責(zé)任鏈模式(Chain of Responsibility)

    責(zé)任鏈模式(Chain of Responsibility) 一、概述 責(zé)任鏈模式是一種行為設(shè)計(jì)模式,它允許請求在對象鏈中傳遞。每個對象都有機(jī)會處理該請求,并且能將其傳遞給鏈中的下一個對象。這種模式為請求創(chuàng)建了一個處理對象的鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它為止

    2024年03月22日
    瀏覽(25)
  • 【玩轉(zhuǎn)23種Java設(shè)計(jì)模式】行為型模式篇:責(zé)任鏈模式

    軟件設(shè)計(jì)模式(Design pattern),又稱設(shè)計(jì)模式,是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。 匯總目錄鏈接:【玩轉(zhuǎn)23種Java設(shè)計(jì)模式】學(xué)習(xí)目錄匯總

    2024年02月13日
    瀏覽(16)
  • Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式

    Java設(shè)計(jì)模式-責(zé)任鏈(Chain of Responsibility)模式

    Java責(zé)任鏈(Chain of Responsibility)設(shè)計(jì)模式是指很多處理對象構(gòu)成一個鏈,鏈中前一個對象指向后一個對象。請求在鏈中傳遞,一個請求可以被一個或者多個對象處理。調(diào)用方(即客戶端)不知道請求會被鏈中的哪個對象處理,所以責(zé)任鏈模式可以方便組織責(zé)任鏈而不影響調(diào)用

    2024年02月16日
    瀏覽(19)
  • Java設(shè)計(jì)模式—責(zé)任鏈模式(Chin of Responsibility)

    Java設(shè)計(jì)模式—責(zé)任鏈模式(Chin of Responsibility)

    目錄 前言 一、責(zé)任鏈模式的簡介 二、責(zé)任鏈模式的概念 三、責(zé)任鏈模式的作用 四、責(zé)任鏈模式的優(yōu)、缺點(diǎn) 1.責(zé)任鏈模式的優(yōu)點(diǎn) 2.責(zé)任鏈模式的缺點(diǎn) 五、責(zé)任鏈模式的應(yīng)用場景 六、代碼案例 UML類圖 ?1.定義一個請求枚舉類 ?2.定義一個請求類 3.定義一個抽象處理接口 4、定

    2024年02月08日
    瀏覽(27)
  • Java 大廠八股文面試專題-設(shè)計(jì)模式 工廠方法模式、策略模式、責(zé)任鏈模式

    Java 大廠八股文面試專題-設(shè)計(jì)模式 工廠方法模式、策略模式、責(zé)任鏈模式

    ????????在平時的開發(fā)中,涉及到設(shè)計(jì)模式的有兩塊內(nèi)容,第一個是我們 平時使用的框架 (比如spring、mybatis等),第二個是我們自己開發(fā)業(yè)務(wù)使用的設(shè)計(jì)模式。 ????????面試官一般比較關(guān)心的是你在開發(fā)過程中, 有沒有使用過設(shè)計(jì)模式,或者你在簡歷上寫了關(guān)于設(shè)計(jì)

    2024年02月10日
    瀏覽(29)
  • Java設(shè)計(jì)模式之責(zé)任鏈模式(UML類圖分析+代碼詳解)

    Java設(shè)計(jì)模式之責(zé)任鏈模式(UML類圖分析+代碼詳解)

    大家好,我是一名在算法之路上不斷前進(jìn)的小小程序猿!體會算法之美,領(lǐng)悟算法的智慧~ 希望各位博友走過路過可以給我點(diǎn)個免費(fèi)的贊,你們的支持是我不斷前進(jìn)的動力??! 加油吧!未來可期!! 本文將介紹java設(shè)計(jì)模式之責(zé)任鏈模式 OA系統(tǒng)采購審批需求 傳統(tǒng)方案解決OA系

    2024年02月06日
    瀏覽(16)
  • 二十四種設(shè)計(jì)模式與六大設(shè)計(jì)原則(三):【裝飾模式、迭代器模式、組合模式、觀察者模式、責(zé)任鏈模式、訪問者模式】的定義、舉例說明、核心思想、適用場景和優(yōu)缺點(diǎn)

    二十四種設(shè)計(jì)模式與六大設(shè)計(jì)原則(三):【裝飾模式、迭代器模式、組合模式、觀察者模式、責(zé)任鏈模式、訪問者模式】的定義、舉例說明、核心思想、適用場景和優(yōu)缺點(diǎn)

    接上次博客:二十四種設(shè)計(jì)模式與六大設(shè)計(jì)原則(二):【門面模式、適配器模式、模板方法模式、建造者模式、橋梁模式、命令模式】的定義、舉例說明、核心思想、適用場景和優(yōu)缺點(diǎn)-CSDN博客 目錄 裝飾模式【Decorator Pattern】 定義 舉例說明 核心思想 適用場景 優(yōu)缺點(diǎn) 迭代

    2024年04月17日
    瀏覽(25)
  • Java設(shè)計(jì)模式之行為型-責(zé)任鏈模式(UML類圖+案例分析)

    Java設(shè)計(jì)模式之行為型-責(zé)任鏈模式(UML類圖+案例分析)

    目錄 一、基礎(chǔ)概念 二、UML類圖 三、角色設(shè)計(jì) 四、案例分析 4.1、在Java中實(shí)現(xiàn) 4.2、在SpringBoot中實(shí)現(xiàn)? 五、總結(jié)? 責(zé)任鏈模式是一種行為設(shè)計(jì)模式,它允許你將請求沿著處理者鏈進(jìn)行發(fā)送。請求會被鏈上每個處理者處理,直到請求被處理完畢。該模式主要解決的是請求的發(fā)送者和

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包