利用責任鏈模式模擬加薪請求 C

2021-07-10 18:58:38 字數 2041 閱讀 7941

他使得多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。他通過將這些物件連成一條鏈,並沿著這條鏈來傳遞請求, 直到有乙個物件處理他為止。

但是這個模式要求我們處於後方的物件需要能夠處理更多的職責, 需要確保請求傳遞到了鍊錶末端一定可以被處理。而在每個物件中, 需要確定是自行處理, 還是轉移責任。

一般來說鍊錶的越後方, 處理的職責也越大

"請假"

&& request->number() <=

2) else

}};class czongjian : public cmanager

if (request->requesttype() ==

"請假"

&& request->number() <=

5) else

}};class cgeneralmanager : public cmanager

if (request->requesttype() ==

"請假")

else

if (request->requesttype() ==

"加薪"

&& request->number() <=

500)

else

if (request->requesttype() ==

"加薪"

&& request->number() >

500)

}};#endif

// _manager_h_

main.cpp

#include "manager.h"

#include

using

namespace

std;

int main()

c 責任鏈模式

責任鏈模式 chain of responsibility 的目標是使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。結構圖為 用乙個採購的例子來說明,採購人員在進行採購前需經過上級部門的批准,對於不同金額的...

C 設計模式 責任鏈模式

優點 請求和處理分開 缺點 避免出現超長鏈的情況,一般的做法是在handler中設定乙個最大節點數量,在setnext方法中判斷是否已經是超過其閾值,超過則不允許該鏈建立,避免無意識地破壞系統效能 抽象處理者 ifndef handler h define handler h include req...

C 設計模式之責任鏈模式

在現實生活中,有很多請求並不是乙個人說了就算的,例如面試時的工資,低於1萬的薪水可能技術經理就可以決定了,但是1萬 1萬5的薪水可能技術經理就沒這個權利批准,可能就需要請求技術總監的批准,所以在面試的完後,經常會有面試官說,你這個薪水我這邊覺得你這技術可以拿這個薪水的,但是還需要技術總監的批准等的話...