china of responsibility:使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。
像這種情況在我們身邊隨處可見,比如,班裡想申請乙個教室舉辦元旦晚會,文藝委員不能自作主張使用某個教室,於是找到班長,班長要做的就是寫申請,向負責人員申請,負責人批准以後才能使用教室,這一步步的過程就像是一條鏈,從某一點開始執行,不能通過的話就向後走,知道找到某一點能解決了問題才終止。問題只要解決了就達到了目的,不用考慮中間有多少人參與過,也就是只關心結果
此班學生的動機可以表示成如圖:
namespace 職責鏈模式
; foreach (int request in requests)
console.read();
} }
//handler類,定義乙個處理請示的介面
abstract class handler
//處理請求的抽象方法
public abstract void handlerequest(int request);
} //concretehandler類,具體處理者類,處理它所負責的請求,可訪問它的後繼者,如果可處理該請求就處理它,否則就將該請求**給它的後繼者
//concretehandler1類,當請求數在0到10之間則有權處理,否則轉到下一位
class concretehandler1:handler
處理請求", this.gettype ().name , request);
} else if (successor != null)
} } //concretehandler2類,當請求數在10到20之間則有權處理,否則轉到下一位
class concretehandler2 : handler
處理請求", this.gettype().name, request);
} else if (successor != null)
} } //concretehandler3類,當請求數在20到30之間則有權處理,否則轉到下一位
class concretehandler3 : handler
處理請求", this.gettype().name, request);
大話設計模式 責任鏈模式
顧名思義,責任鏈模式 chain of responsibility pattern 為請求建立了乙個接收者物件的鏈。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦。這種型別的設計模式屬於行為型模式。在這種模式中,通常每個接收者都包含對另乙個接收者的引用。如果乙個物件不能處理該請求,那麼它會...
大話設計模式之責任鏈模式
使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈處理該請求,直到有乙個物件處理它為止。1 降低耦合度。它將請求的傳送者和接收者解耦。2 簡化了物件。使得物件不需要知道鏈的結構。3 增強給物件指派職責的靈活性。通過改變鏈內的成員或者調動它們的次...
設計模式 責任鏈模式
定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...