大話設計模式 責任鏈模式

2021-07-05 07:28:33 字數 1747 閱讀 5724

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...