ChainOfResponsibility

2914 ワード

#include <iostream>



using namespace std;







class Chain

{

public:

    bool Handle() { return false; }

};



class Level1 : public Chain

{

public:

    bool Handle()

    {

        cout<<"Level1::true"<<endl;

        return true;



    }

};



class Level2 : public Level1

{

public:

    bool Handle()

    {

        cout<<"Level2::Handle"<<endl;

        return Level1::Handle();

    }

};



class Level3 : public Level2

{

public:

    bool Handle()

    {

        cout<<"Level3::Handle"<<endl;

        return Level2::Handle();

    }

};







int main(int argc, char *argv[])

{

    Level3 level3;

    level3.Handle();





    return 0;

}