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

xiaoxiao2021-02-28  83

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); }
转载请注明原文地址: https://www.6miu.com/read-43268.html

最新回复(0)