您的位置:首页 > 其它

设计模式之责任链模式

2016-03-29 10:21 405 查看
#include <iostream>

using namespace std;

class Handler
{
public:
virtual void HandleRequest() = 0;
void setNextHandler(Handler *nextHandler)
{
this->nextHandler=nextHandler;
}
protected:
Handler *nextHandler;
};

class ConcreteHanderA:public Handler
{
public:
virtual void HandleRequest()
{
cout<<"ConcreteHanderA HandleRequest "<<endl;
if(nextHandler != NULL)
{
nextHandler->HandleRequest();
}
}
};

class ConcreteHanderB:public Handler
{
public:
virtual void HandleRequest()
{
cout<<"ConcreteHanderB HandleRequest "<<endl;
if(nextHandler != NULL)
{
nextHandler->HandleRequest();
}
}
};

class ConcreteHanderC:public Handler
{
public:
virtual void HandleRequest()
{
cout<<"ConcreteHanderC HandleRequest "<<endl;
if(nextHandler != NULL)
{
nextHandler->HandleRequest();
}
}
};

int main()
{
Handler * handlerA = new ConcreteHanderA();
Handler * handlerB = new ConcreteHanderB();
Handler * handlerC = new ConcreteHanderC();
handlerA->setNextHandler(handlerC);
handlerC->setNextHandler(handlerB);

handlerA->HandleRequest();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: