摘要:責任鏈模式一責任鏈模式定義在責任鏈模式中,許多對象由每個對象及其對下家的引用而連接起來形成一條鏈請求在這個鏈上傳遞,知道其中的某一個對象決定處理此請求角色抽象處理者角色具體處理者角色純與不純純的責任鏈模式要么處理,要么讓下家處理,而不能處理
責任鏈模式
一. 責任鏈模式 1.1 定義在責任鏈模式中,許多對象由每個對象及其對下家的引用而連接起來形成一條鏈.請求在這個鏈上傳遞,知道其中的某一個對象決定處理此請求.
1.2 角色抽象處理者角色(Handler).
具體處理者角色(ConcertHandler).
1.3 純與不純
純的責任鏈模式:要么處理,要么讓下家處理,而不能處理了一部分在交由下家處理.
不純的責任鏈模式:請求最終可不被任何對象處理.
二. 具體實現 2.1 創建抽象處理者角色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 創建具體處理者角色
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 調用
public static void main(String[] args) { Handler handlerA = new HandlerA(); Handler handlerB = new HandlerB(); handlerA.setNextHandler(handlerB); handlerA.handle(); }2.4 輸出
HandlerB handle ...三. 優缺點 3.1 優點
降低耦合度.
簡化對象.
增強對象指派職責的靈活性.
3.2 缺點請求不一定接受.
對性能有影響.
四. 源碼https://github.com/Seasons20/DisignPattern.git
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69603.html
摘要:每一個都會檢查并且比較消息的等級與該等級,判斷打印或者不打印,并且傳遞消息到下一個。設置每個的錯誤等級以及每個的,每一個的都是當前鏈的一部分。 責任鏈模式 責任鏈模式顧名思義,對于一個請求會去創建一條接受者鏈。這種模式會解耦一種類型的請求中接受者和發送者,該模式模式屬于行為模式的一種。在該模式當中,一般情況下,每個接受者都會有另外一個接受者的引用,如果該接受者無法處理該請求,請求會通過...
世界上最遙遠的距離,不是生與死,而是它從你的世界路過無數次,你卻選擇視而不見,你無情,你冷酷啊...... showImg(https://segmentfault.com/img/remote/1460000019550563); 被你忽略的就是責任鏈設計模式,希望它再次經過你身旁你會猛的發現,并對它微微一笑...... 責任鏈設計模式介紹 抽象介紹 初次見面,了解表象,深入交流之后(看完文中的...
摘要:責任鏈模式涉及到的角色如下所示抽象處理者角色定義一個處理請求的抽象類。如果一個類承擔了一部分責任,還將請求踢給下一個皮球,則被稱為不純的責任鏈模式。一般來說,日常開發中不純的責任鏈模式用的比較多一點。參考責任鏈模式更多文章 在閻宏博士的《JAVA與模式》一書中開頭是這樣描述責任鏈(Chain of Responsibility)模式的: 責任鏈模式是一種對象的行為模式。在責任鏈模式里,...
閱讀 1156·2023-04-25 17:28
閱讀 3531·2021-10-14 09:43
閱讀 3955·2021-10-09 10:02
閱讀 1943·2019-08-30 14:04
閱讀 3129·2019-08-30 13:09
閱讀 3270·2019-08-30 12:53
閱讀 2896·2019-08-29 17:11
閱讀 1823·2019-08-29 16:58