备忘录模式

来源:互联网 发布:众筹软件排名 编辑:程序博客网 时间:2024/05/22 00:19

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态

//设计备忘录三大步骤
//1.设计记录的节点,存储记录,//记录鼠标,键盘的状态
//2.设计记录的存储,vector,list,map,set,链表,图,数组,树
//3.操作记录的类,记录节点状态,设置节点状态,显示状态,0.1秒记录一下


//备忘录的节点,
class Memo
{
public:
    string state;
    Memo(string state) //记录当前的状态,
    {
        this->state = state;
    }
};

class Originator//类的包含备忘录的节点
{
public:
    string state;
    void setMemo(Memo *memo)
    {
        state = memo->state;
    }
    Memo *createMemo()
    {
        return new Memo(state);
    }
    void show()
    {
        cout << state << endl;
    }
};


//备忘录的集合
class Caretaker
{
public:
    vector<Memo *> memo;
    void save(Memo *memo)
    {
        (this->memo).push_back(memo);
    }
    Memo *getState(int i)
    {

        return memo[i];
    }
};

0 0