一、功能
使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。
二、優缺點
客戶不知道它的請求將被哪個物件處理。
三、實現
有兩種實現思路。一種是自己先處理,處理不成功了再交給其他人處理。另一種是先交給別人處理,處理不成功了再自己處理。示例**如下節所示。
四、示例**
(1)示例一
namespace designpattern_chainofresponsibility(2)示例二virtual
void handlerequest()
private:
handler *_successor ;
} ;// class concretehandler1
class concretehandler1 : public handler
virtual
void handlerequest()
} ;// class concretehandler2
class concretehandler2 : public handler
virtual
void handlerequest()
} ;}
namespace designpattern_chainofresponsibilityvirtual
bool handlerequest() //返回true表示處理成功,返回false表示處理失敗
private:
handler *_successor ;
} ;// class concretehandler1
class concretehandler1 : public handler
virtual
bool handlerequest()
return bhandled ;
} } ;
// class concretehandler2
class concretehandler2 : public handler
virtual
bool handlerequest()
return bhandled ;
} } ;
}
職責鏈 設計模式
知識點 職責鏈 chain of responsibility 知識內容 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。示例 includeusing namespace std typedef int...
設計模式 職責鏈模式
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...