1、職責鏈模式(chain of responsibility),使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。
2、責任鏈模式結構圖:
3、簡單**實現
handler類,定義乙個處理請示的介面。
public abstract class handler
public abstract void handlerrequset(int request);
}
concretehandler類,具體處理者類,處理它所負責的請求,可以訪問它的後繼者,如果可以處理該請求就處理之,否則就將該請求**給它的後繼者。
concretehandler1,在0-10之間有權處理否則傳給下一位
public class concretehandler1 extends handler else if(successor!=null)}}
concretehandler2,在10-20之間有權處理否則傳給下一位
public class concretehandler2 extends handler else if(successor!=null)
}}
concretehandler3,在20-30之間有權處理否則傳給下一位
public class concretehandler3 extends handlerelse if(successor!=null)
}}
客戶端**
public class client ;
for (int i : request)
}}
4、好處
1、當客戶提交乙個請求時,請求是沿鏈傳遞直到有乙個concretehandler處理它,這就使得接收方和傳送方都沒有對方明確的資訊,且鏈中的物件自己也並不知道鏈的結構,結果是職責鏈可簡化物件間的相互連線,他們僅需保持乙個指向其後繼者的引用,而不用保持他所有候選者的引用,我們可以隨時增加或修改處理乙個請求的結構,增強了給物件指派的靈活性。
大話設計模式 職責鏈模式
1.當客戶提交乙個請求時,請求是沿鏈傳遞直至有乙個concretehandler物件負責處理它 dp 2.接收者和傳送者都沒有對方的明確資訊,且鏈中的物件自己也並不知道鏈的結構。結果是職責鏈可簡化物件的相互連線,它們僅需保持乙個指向其後繼者的引用,而不需保持它所有的候選接受者的引用 dp 3.隨時隨...
java 職責鏈模式(大話設計模式)
處理請求的介面 author administrator public abstract class handler public abstract void handlerequest int request 具體處理者類,處理它所負責的請求,可訪問它的後繼者,如果可處理該請求,則處理,否則轉給它...
大話設計模式(13)職責鏈模式
一 場景描述及uml圖 簡單概括 適用於串序指向的策略,如演算法流 a b c d e f,各個演算法依次指向,特定條件下某些演算法可能會跳過。二 概念 職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合。將這個物件連成一條...