设计模式之状态模式(c++)

来源:互联网 发布:如何在淘宝上申请退款 编辑:程序博客网 时间:2024/05/22 15:29

状态模式的作用是将判断条件的代码转换为c++的多态性,状态在不同的对象实例间切换,从而完成了实际的判断,优化代码的结构


代码来源于《c++编程思想》

class Creature {    class State {    public:        virtual const string response() = 0;    };    class Frog : public State {    public:        const string response() {            string str = "Ribbet!";             return str;         }    };    class Prince : public State {    public:        const string response() {             string str = "Darling!";             return str;          }    };    State* state;public:    Creature() : state(new Frog()) {}    void greet() {        cout << state->response().c_str() << endl;    }           void kiss() {        delete state;        state = new Prince();    }};void StatePatternTest(){    Creature creature;    creature.greet();    creature.kiss();    creature.greet();}



0 0
原创粉丝点击