Beispiel #1
0
  public static void main(String[] args) {
    Originator originator = new Originator();
    originator.setState("ON");
    originator.show();

    CareTaker careTaker = new CareTaker();
    careTaker.setMemento(originator.createMemento());

    originator.setState("OFF");
    originator.show();

    originator.setMemento(careTaker.getMemento());
    originator.show();
  }
Beispiel #2
0
  public static void main(String[] args) {
    Caretaker caretaker = new Caretaker();

    Originator originator = new Originator();
    originator.set("State1");
    originator.set("State2");
    caretaker.addMemento(originator.saveToMemento());
    originator.set("State3");
    caretaker.addMemento(originator.saveToMemento());
    originator.set("State4");

    originator.restoreFromMemento(caretaker.getMemento(1));
  }
Beispiel #3
0
  public static void main(String[] args) {
    Originator org = new Originator();
    org.setStat("ON");

    Memento memento = org.createMemento();
    Caretaker c = new Caretaker();

    // memento 所有接口都对外可见......导致数据被串改危险
    // memento.setStat("abc");

    c.saveMemento(memento);
    org.setStat("OFF");

    org.restoreMemento(c.retrieveMemento());
    System.out.println(org.getStat());
  }