什麼是責任鏈模式呢?所謂的責任鏈模式就是使多個物件都有機會處理同乙個請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。比如現在比較流行的okhttp網路請求框架就是採用了責任鏈模式。下面將手寫乙個簡易的責任鏈。
這是乙個介面,所有的子鏈都需要實現該介面。
isconsume:當前鏈條是否消費
chain:責任鏈管理類
也是實現了ichain介面,並提供集合,存放所有的鏈條。
index:當前需要去執行的鏈條標識
chainlist:責任鏈集合
建立幾個子鏈
以上三都實現了ichain介面,並且只要某個鏈消費以後,責任鏈也就不再執行下去。比如chain1消費了,那麼chain2就不會執行了。
建立測試類如下:
將責任鏈新增到集合中,並且將集合管理類作為引數傳遞給子鏈,這樣在子鏈中呼叫doaction()方法就會呼叫管理類的該方法,然後根據下標,呼叫下乙個子鏈的方法。
執行結果如下:
在chain2中已經完成了這個任務,就不會交給chain3了。
設計模式 責任鏈模式
定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...
設計模式 責任鏈模式
責任鏈可以使得系統在不影響客戶端的前提下動態的安排責任鏈和分配責任。責任鏈模式中包含的角色有抽象處理者,具體處理者以及請求的傳送者。責任鏈可以是一條直線,乙個環鏈甚至乙個樹結構。它使得每乙個具體的訊息處理者都有可能處理訊息。抽象的請求處理者 author wly public abstract cl...
設計模式 責任鏈模式
責任鏈模式 chain ofresponsibility pattern 基本概念 責任鏈,顧名思義,是指乙個負責相應請求的行為鏈。首先要理解的是乙個鏈,然後通過這個鏈來管理個行為。什麼時候會用到責任鏈 對於乙個請求,沒有特別指明由誰處理或沒有指明如何處理。此時可以使用責任鏈的形式,用過將各種處理行...