大话设计模式_职责链模式

来源:互联网 发布:mac地址可以监控手机 编辑:程序博客网 时间:2024/04/27 23:28

**

#include <iostream>#include <string>#include <vector>using namespace std;class Request{public:    string m_strContent;    int m_nNumber;};class Manager{public:    Manager(string temp)    {        name = temp;    }    void SetSuccessor(Manager *temp)    {        manager = temp;    }    virtual void GetRequest(Request *request) = 0;protected:    string name;    Manager *manager;};class CommomManager :public Manager{public:    CommomManager(string strTemp) :Manager(strTemp)    {    }    virtual void GetRequest(Request *request)    {        if (request->m_nNumber >= 0 && request->m_nNumber < 10)        {            cout << name << "done" << request->m_nNumber << "request" << endl;        }        else        {            manager->GetRequest(request);        }    }};class MajorDomo :public Manager{public:    MajorDomo(string name) :Manager(name){}    virtual void GetRequest(Request *request)    {        if (request->m_nNumber >= 10)        {            cout << name << "done" << request->m_nNumber << "request" << endl;        }    }};int main(){    Manager *common = new CommomManager("张经理");    Manager *major = new MajorDomo("李总监");    common->SetSuccessor(major);    Request *req = new Request();    req->m_nNumber = 33;    common->GetRequest(req);    req->m_nNumber = 3;    common->GetRequest(req);    system("pause");    return 0;}

**

1 0
原创粉丝点击