在責任鏈模式中,很多物件由每乙個物件對其下家的引用而接起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。客戶並不知道鏈上的哪乙個物件最終處理這個請 求,系統可以在不影響客戶端的情況下動態的重新組織鏈和分配責任。處理者有兩個選擇:承擔責任或者把責任推給下家。乙個請求可以最終 不被任何接收端物件所接受。
晚上去上英語課,為了好開溜坐到了最後一排,哇,前面坐了好幾個漂亮的mm哎,找張紙條,寫上 「hi,可以做我的女朋友嗎?如果不願意請向前傳」,紙條就乙個接乙個的傳上去了,糟糕,傳到第一排的mm把紙條傳給老師了。這波也不虧。
#include
using namespace std;
class carhandle
virtual void
handlerequest()
=0; virtual carhandle *
setnexthandler
(carhandle *handler)
protected:
carhandle *handler;};
class enginecarhandle : public carhandle}}
;class bodycarhandle : public carhandle}}
;class tirecarhandle : public carhandle}}
;int
main()
設計模式 責任鏈模式
定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...
設計模式 責任鏈模式
責任鏈可以使得系統在不影響客戶端的前提下動態的安排責任鏈和分配責任。責任鏈模式中包含的角色有抽象處理者,具體處理者以及請求的傳送者。責任鏈可以是一條直線,乙個環鏈甚至乙個樹結構。它使得每乙個具體的訊息處理者都有可能處理訊息。抽象的請求處理者 author wly public abstract cl...
設計模式 責任鏈模式
責任鏈模式 chain ofresponsibility pattern 基本概念 責任鏈,顧名思義,是指乙個負責相應請求的行為鏈。首先要理解的是乙個鏈,然後通過這個鏈來管理個行為。什麼時候會用到責任鏈 對於乙個請求,沒有特別指明由誰處理或沒有指明如何處理。此時可以使用責任鏈的形式,用過將各種處理行...