10 責任鏈模式

2021-09-12 16:01:45 字數 1254 閱讀 3132

責任鏈模式也叫做職責鏈模式、職責連鎖模式。在該模式下,很多物件由每乙個物件對其下家的引用而連線起來形成一條鏈,請求在這個鏈上傳遞,直到某個物件處理了該請求。在鏈上的處理者有兩個選擇,乙個是處理該請求,乙個是將請求推給下一家。乙個請求最終可能會出現沒有被處理的情況。

例如客戶把乙個請求交給a,a完成了a部分之後,把任務交給b,b完成了b部分交給c,c完成了c部分後,交給d。此時d判斷能否完成d部分,能完成,則完成它,不能完成,則不完成,然後將結果通知客戶。

優點:

缺點:

類圖如下:

示例**如下:

#include using namespace std;

/* 抽象基類 */

class handle

virtual void handlerequest() = 0;

void setsuccessor(handle *succ)

handle* getsuccessor()const

protected:

handle()

handle(handle* succ)

private:

handle* _succ;

};/* 具體實現子類a */

class concretehandlea :public handle

concretehandlea(handle* succ) :handle(succ)

void handlerequest()

else

}};/* 具體實現子類b */

class concretehandleb :public handle

concretehandleb(handle* succ) :handle(succ)

void handlerequest()

else

}};int main()

執行結果如下:

設計模式利劍10 責任鏈模式

定 義 使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合,將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止 優 點 將請求和處理分開,請求者可以不知道是誰處理的,處理者不用知道請求的全貌,兩者解耦,提高了靈活性,責任鏈模式減低了請求 的傳送端和接收端之間的耦合,...

簡易設計模式10 責任鏈模式

我們在工作過程中有時候會請假休息,當我們填寫一張請假單後,在這張假單簽字的人,是一級接一級地推進,比如直屬領導 部門總監 ceo 行政人員這樣乙個流程,處理這張假單的過程就是乙個責任的傳遞,他們構成了乙個責任的鏈條,這就是責任鏈模式的核心思想。本篇將詳細梳理責任鏈模式。責任鏈模式也稱職責模式,它是一...

責任鏈模式

責任鏈模式 chain of responsibility 的目標是使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。舉個例子。你到銀行去辦理業務,只是簡單的存個錢,也許atm就解決你的問題。如果你是為了交費...