Memento备望录模式定义:
memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.
Memento模式相对也比较好理解,我们看下列代码:
public class Originator { public int number; public File file = null; public Originator(){} // 创建一个Memento // 恢复到原始值 } ? |
我们再看看Memento类:
private class Memento implements java.io.Serializable{ public int number; public File file = null; public Memento( Originator o){ number = o.number; } }
|
可见 Memento中保存了Originator中的number和file的值. 通过调用Originator中number和file值改变的话,通过调用setMemento()方法可以恢复.
Memento模式的缺点是耗费大,如果内部状态很多,再保存一份,无意要浪费大量内存.