package vn.edu.rmit.examples; import java.util.ArrayList; import java.util.List; public class Caretaker { private static List<Memento> saves = new ArrayList<Memento>(); public static void main(String[] args) { Originator o = new Originator(); o.setCurrentState("State 1"); System.out.println(o.getCurrentState()); o.setCurrentState("State 2"); System.out.println(o.getCurrentState()); saves.add(o.saveToMemento()); o.setCurrentState("State 3"); System.out.println(o.getCurrentState()); saves.add(o.saveToMemento()); o.setCurrentState("State 4"); System.out.println(o.getCurrentState()); //rollback to first 'save' o.loadFromMemento(saves.get(0)); System.out.println(o.getCurrentState()); } }