Step 1: Create the original class Original
public class Original { //The attribute value that needs to be saved private String value; //create memo public Memento createMemento() { return new Memento(value); } // store the value public void restoreMemento(Memento memento) { this.value=memento.getValue(); } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public Original(String value) { super(); this.value = value; } }
Step 2: Create a memo class Memento
public class Memento { private String value; public Memento(String value) { this.value=value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
Step 3: Create a class Storage for storing memos
public class Storage { private Memento memento; public Storage(Memento memento) { this.memento = memento; } public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
Step 4: Test
public class Test { public static void main(String[] args) { Original original =new Original("egg"); Storage storage =new Storage(original.createMemento()); System.out.println("The initialization state is: "+original.getValue()); original.setValue("niu"); System.out.println("modified state"+original.getValue()); original.restoreMemento(storage.getMemento()); System.out.println("Restored state: "+original.getValue()); } }