1.意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2.动机 给多个对象处理一个请求的机会,从而解耦发送者和接收者。3.适用性有多个的对象可以处理一个 ...
1.意图
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
2.动机
给多个对象处理一个请求的机会,从而解耦发送者和接收者。
3.适用性
- 有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。
- 你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
- 可处理一个请求的对象集合应被动态指定。
4.结构
5.代码实例
//Handler.h#include <memory>class AbstractHandler{public: virtual void HandleRequest() = 0; virtual void SetHandler(std::shared_ptr<AbstractHandler> pHandler);protected: std::shared_ptr<AbstractHandler> m_pHandler;};class BaseHandler : public AbstractHandler{public: virtual void HandleRequest();};class ConcreteHandler1 : public BaseHandler{public: void HandleRequest();};class ConcreteHandler2 : public BaseHandler{public: void HandleRequest();};
原标题:Chain Of Responsibility(职责连)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。