1. 職責鏈模式:使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並且沿著這條鏈傳遞該請求,直到有乙個物件處理它為止;
2. 應用場景:給系統降低了耦合性,請求的傳送者完全不必知道該請求會被哪個應答物件處理;
3. 結構圖
// 定義乙個處理請示的介面;
class handler
// 處理請求的抽象方法;
virtual void handlerequest(int ireauest) = 0;
protected:
handler *m_phandler;
};// 具體處理者類
class concretehandler1 : public handler
else if (m_phandler != null) // 轉移到下一位;}};
// 具體處理者類
class concretehandler2 : public handler
else if (m_phandler != null) // 轉移到下一位;}};
// 客戶端**:
#include "concretehandler1.h"
#include "concretehandler2.h"
#include "concretehandler3.h"
// 職責鏈模式:使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並且沿著這條鏈傳遞該請求,直到有乙個
// 物件處理它為止;[8/14/2016 zosh];
int _tmain(int argc, _tchar* argv)
;for each (int i in irequests) // 遍歷請求命令;
// 清除指標與記憶體;
if (ph1)
if (ph2)
if (ph3)
return 0;
}
設計模式 職責鏈模式
2008年08月17日 星期日 下午 04 28 using system using system.collections.generic using system.text public officer officer o public abstract void deal action a c...
設計模式 職責鏈模式
1 request.h ifndef request h define request h include include using namespace std class request 請求類定義 endif request h 2 manager.h ifndef manager h def...
設計模式 職責鏈模式
今天跟大家分享下設計模式中的職責鏈模式。不知道大家在學習職責鏈模式的時候是否感覺困難。我剛開始學的時候就被整暈了。呵呵,進入正題。職責鏈模式是物件行為型模式中比較有特點的設計模式了,的確有意思,它可以像資料結構中煉表一樣傳遞。其實生活中好多的行為方式都體現了職責鏈模式,我們初期學習者可以把職責鏈模式...