zoukankan      html  css  js  c++  java
  • 责任链

    *****************************
    在csdn上看到一篇责任链的文章,用c++给他重写一遍自己也学习下。
    *****************************

    class Handler {
    protected:
    Handler *successor;
    public:
    void SetSuccessor(Handler *suc) {
    successor = suc;
    }
    virtual void HandleRequest(int request) = 0;
    };

    class Concretehandler1 :public Handler {
    public:
    void HandleRequest(int request) {
    if (request > 0 && request < 20) {
    cout << "do 1" << endl;
    } else if (successor != NULL) {
    successor->HandleRequest(request);
    }
    }
    };

    class Concretehandler2 :public Handler {
    public:
    void HandleRequest(int request) {
    if (request > 20) {
    cout << "do 2" << endl;
    } else if (successor != NULL) {
    successor->HandleRequest(request);
    }
    }
    };

    int _tmain(int argc, _TCHAR* argv[])
    {
    Handler *h1 = new Concretehandler1;
    Handler *h2 = new Concretehandler2;
    Handler *h22 = new Concretehandler2;

    h1->SetSuccessor(h2);
    h2->SetSuccessor(h22);
    h22->SetSuccessor(NULL);

    int requests[] = {23,2,3};

    for (int i = 0;i < 3;i++) {
    h1->HandleRequest(requests[i]);
    cout << "**********" << endl;
    }
    system("pause");
    }

    *****************************

    write by fgd

  • 相关阅读:
    Jmeter导出测试报告
    安卓软件学习进度_21
    安卓软件学习进度_20
    安卓软件学习进度_19
    安卓软件学习进度_18
    安卓软件学习进度_17
    安卓软件学习进度_16
    安卓软件学习进度_15
    安卓软件学习进度_14
    安卓软件学习进度_13
  • 原文地址:https://www.cnblogs.com/wendao/p/dpn_chain_of_responsibility.html
Copyright © 2011-2022 走看看