java23中设计模式——行为模式——Memento(备忘机制)

Memento 备望录模式定义: 

memento 是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到

原先保存的状态. 

Memento 模式相对也比较好理解,我们看下列代码: 

public class Originator {  

 

    private int number;  

   private File file = null; 

   public Originator(){} 

   // 创建一个 Memento 

   public Memento getMemento(){ 

     return new Memento(this); 

   } 

   // 恢复到原始值 

   public void setMemento(Memento m){ 

      number = m.number; 

      file = m.file; 

   } 

我们再看看 Memento 类: 

private class Memento implements java.io.Serializable{ 

  private int number; 

   private File file = null; 

   public Memento( Originator o){ 

     number = o.number; 

     file = o.file; 

   } 

}

可见 Memento 中保存了Originator 中的 number 和 file的值. 通过调用

Originator 中 number 和 file 值改变的话,通过调用 setMemento()方法可以恢复. 

Memento 模式的缺点是耗费大,如果内部状态很多,再保存一份,无意要浪费大量内存. 




你可能感兴趣的:(java23中设计模式——行为模式——Memento(备忘机制))