設計模式C 版 第十五式職責鏈模式

2021-08-07 07:52:46 字數 971 閱讀 5387

職責鏈模式:使多個物件都有機會處理請求,從而便面請求傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並沿著鏈條傳遞該請求,直到有乙個物件處理它為止。類似狀態模式。接收者和傳送者都沒有對方的明確資訊,且鏈中的物件,自己也不知道鏈的結構。職責鏈可以簡化物件的相互連線,僅保持乙個後繼者的引用,而不需保持須有接收者的引用。大大降低了耦合度。    需要注意的是,他和狀態模式一樣,有可能到了鏈的末端,請求都沒處理。

includeusing std::string;

class request

int getnum()

private:

int m_num;

};class manager

virtual ~manager(){}

virtual void setsuperior(manager*manager)

virtual void requestdeal(request request){}

protected: //受保護被繼承

string m_name;

manager * m_superior;

};//經理

class commanmanager:public manager

virtual void requestdeal(request request)

else

}}};

//總監

class majormanager :public manager

virtual void requestdeal(request request)

else

}}};

//總經理

class generalmanager :public manager

virtual void requestdeal(request request) };

int main()

設計模式 職責鏈模式 C

職責鏈模式 解耦請求的傳送者和請求的接受者,使多個物件都由機會接收到這個請求。所有的物件形成一條鏈,在這條鏈中總有乙個物件可以出來這個請求。場景 有多個物件可以處理乙個請求,那個物件處理這個請求則執行時確定 在不明確接受者的情況下,向多個物件中傳送乙個請求 include 任務型別 enum typ...

C 設計模式 職責鏈模式

目錄 基本概念 與例項 在哪種地方使用 職責鏈模式 chain of responsibility 時多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連線成一條鏈,並沿著這條鏈條傳遞該請求,直到有乙個物件處理它為止。這裡發出這個請求的客戶端並不知道這當中的哪個物件最終...

C 設計模式 職責鏈模式

什麼是職責鏈模式?在gof的 設計模式 可復用物件導向軟體的基礎 一書中對職責鏈模式是這樣說的 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,直到有乙個物件處理它為止 如下圖 對於每個角色,他們都有他們的職責 當我提交了休假申請時,專案經理需要判斷,看...