JAVA设计模式-Memento

    技术2022-05-19  27

        Memento设计模式用来备份一个对象的当前状态,当需要的时候,用这个备份来恢复这个对象在某一个时刻的状态。

     

        看一段代码:

     

        package memento; import java.io.Serializable; class Originator { public int number; public Originator(int num){ this.number = num; } public void setNumber(int num){ this.number = num; } public int getNumber(){ return this.number; } // 创建一个Memento public Memento getMemento(){ return new Memento(this); } // 恢复到原始值 public void setMemento(Memento m){ number = m.number; } } class Memento implements Serializable{ private static final long serialVersionUID = 1L; public int number; public Memento( Originator o){ number = o.number; } } public class Test{ public static void main(String[] args) { Originator o = new Originator(10); System.out.println("original:"+o.getNumber()); Memento mement = o.getMemento(); o.setNumber(20); System.out.println("changed:"+o.getNumber()); o.setMemento(mement); System.out.println("recovered:"+o.getNumber()); } }

     

        上面的代码中,Memento这个类备份了Originator这个类的状态number,在需要的时候用这个备份就可以恢复Originator被备份的那个状态。

     

        下面是运行的结果:

     

    original:10changed:20recovered:10   


    最新回复(0)