成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

責(zé)任鏈模式(Chain Of Responsibility)

godlong_X / 3079人閱讀

摘要:責(zé)任鏈模式一責(zé)任鏈模式定義在責(zé)任鏈模式中,許多對象由每個對象及其對下家的引用而連接起來形成一條鏈請求在這個鏈上傳遞,知道其中的某一個對象決定處理此請求角色抽象處理者角色具體處理者角色純與不純純的責(zé)任鏈模式要么處理,要么讓下家處理,而不能處理

責(zé)任鏈模式

一. 責(zé)任鏈模式 1.1 定義

在責(zé)任鏈模式中,許多對象由每個對象及其對下家的引用而連接起來形成一條鏈.請求在這個鏈上傳遞,知道其中的某一個對象決定處理此請求.

1.2 角色

抽象處理者角色(Handler).

具體處理者角色(ConcertHandler).

1.3 純與不純

純的責(zé)任鏈模式:要么處理,要么讓下家處理,而不能處理了一部分在交由下家處理.

不純的責(zé)任鏈模式:請求最終可不被任何對象處理.

二. 具體實現(xiàn) 2.1 創(chuàng)建抽象處理者角色
    public abstract class Handler {
        protected Handler nextHandler = null;
        public abstract void handle();
        public Handler getNextHandler() {
            return nextHandler;
        }
        public void setNextHandler(Handler nextHandler) {
            this.nextHandler = nextHandler;
        }
    }
2.2 創(chuàng)建具體處理者角色
    public class HandlerA extends Handler{
        @Override
        public void handle() {
            if(nextHandler == null){
                System.out.println("HandlerA handle ...");
            }else{
                nextHandler.handle();
            }
        }
    }
    public class HandlerB extends Handler{
        @Override
        public void handle() {
            if(nextHandler == null){
                System.out.println("HandlerB handle ...");
            }else{
                nextHandler.handle();
            }
        }
    }
2.3 調(diào)用
    public static void main(String[] args) {
        Handler handlerA = new HandlerA();
        Handler handlerB = new HandlerB();
        handlerA.setNextHandler(handlerB);
        handlerA.handle();
    }
2.4 輸出
    HandlerB handle ...
三. 優(yōu)缺點 3.1 優(yōu)點

降低耦合度.

簡化對象.

增強對象指派職責(zé)的靈活性.

3.2 缺點

請求不一定接受.

對性能有影響.

四. 源碼
    https://github.com/Seasons20/DisignPattern.git

END

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69603.html

相關(guān)文章

  • Chain of Responsibility Pattern(譯)

    摘要:每一個都會檢查并且比較消息的等級與該等級,判斷打印或者不打印,并且傳遞消息到下一個。設(shè)置每個的錯誤等級以及每個的,每一個的都是當(dāng)前鏈的一部分。 責(zé)任鏈模式 責(zé)任鏈模式顧名思義,對于一個請求會去創(chuàng)建一條接受者鏈。這種模式會解耦一種類型的請求中接受者和發(fā)送者,該模式模式屬于行為模式的一種。在該模式當(dāng)中,一般情況下,每個接受者都會有另外一個接受者的引用,如果該接受者無法處理該請求,請求會通過...

    Acceml 評論0 收藏0
  • 不得不知的責(zé)任設(shè)計模式

    世界上最遙遠的距離,不是生與死,而是它從你的世界路過無數(shù)次,你卻選擇視而不見,你無情,你冷酷啊...... showImg(https://segmentfault.com/img/remote/1460000019550563); 被你忽略的就是責(zé)任鏈設(shè)計模式,希望它再次經(jīng)過你身旁你會猛的發(fā)現(xiàn),并對它微微一笑...... 責(zé)任鏈設(shè)計模式介紹 抽象介紹 初次見面,了解表象,深入交流之后(看完文中的...

    raise_yang 評論0 收藏0
  • JAVA設(shè)計模式責(zé)任模式

    摘要:責(zé)任鏈模式涉及到的角色如下所示抽象處理者角色定義一個處理請求的抽象類。如果一個類承擔(dān)了一部分責(zé)任,還將請求踢給下一個皮球,則被稱為不純的責(zé)任鏈模式。一般來說,日常開發(fā)中不純的責(zé)任鏈模式用的比較多一點。參考責(zé)任鏈模式更多文章 在閻宏博士的《JAVA與模式》一書中開頭是這樣描述責(zé)任鏈(Chain of Responsibility)模式的: 責(zé)任鏈模式是一種對象的行為模式。在責(zé)任鏈模式里,...

    libxd 評論0 收藏0
  • 輕松學(xué)會責(zé)任模式

    摘要:設(shè)計模式責(zé)任鏈模式顧名思義,責(zé)任鏈模式為請求創(chuàng)建了一個接收者對象的鏈。這種模式給予請求的類型,對請求的發(fā)送者和接收者進行解耦。增強給對象指派職責(zé)的靈活性。通過改變鏈內(nèi)的成員或者調(diào)動它們的次序,允許動態(tài)地新增或者刪除責(zé)任。 設(shè)計模式 - 責(zé)任鏈模式 顧名思義,責(zé)任鏈模式(Chain of Responsibility Pattern)為請求創(chuàng)建了一個接收者對象的鏈。這種模式給予請求的類型...

    cheukyin 評論0 收藏0

發(fā)表評論

0條評論

godlong_X

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<