设计模式(十七)Memento备忘录

来源:互联网 发布:淘宝迷你型三辊研磨机 编辑:程序博客网 时间:2024/06/15 06:18

1.使用场景:程序回溯到对象之前的某个状态
2.定义:在不破坏封装的前提下,捕获一个对象的内部状态
,并在该对象之外保存这个状态,
这样可以将该对象恢复到原先保存的状态


Memento设计模式代码:

class Memento{    string state;    //..public:    Memento(const string & s) : state(s) {}    string getState() const { return state; }    void setState(const string & s) { state = s; }};class Originator{    string state;    //....public:    Originator() {}    Memento createMomento() {        Memento m(state);        return m;    }    void setMomento(const Memento & m) {        state = m.getState();    }};int main(){    Originator orginator;        //捕获对象状态,存储到备忘录    Memento mem = orginator.createMomento();        //... 改变orginator状态        //从备忘录中恢复    orginator.setMomento(memento);       }


原创粉丝点击