意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
class Memento { friend class Originator; public: ~Memento() {} private: Memento(const string& state) { this->state = state; } private: string state; }; class Originator { public: Originator() {} ~Originator() {} void SetState(const string& state) { this->state = state; } Memento* CreateMemento() { return new Memento(state); } void SetMemento(Memento* men) { this->state = men->state; } private: string state; };
本文介绍了使用Memento模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态的方法。通过Originator类设置状态,创建Memento对象并保存状态,之后可通过SetMemento方法恢复状态。
1192

被折叠的 条评论
为什么被折叠?



