就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。
public class Memento {
private String value;
public Memento(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
public class Origin {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Memento createMemento() {
return new Memento(value);
}
public void getMementoState(Memento memento) {
this.value = memento.getValue();
}
}
public class MementoManagement {
private Memento memento;
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
@Test
public void MementoTest() {
Origin origin = new Origin();
origin.setValue("saveData1");
Memento memento = origin.createMemento();
MementoManagement mementoManagement = new MementoManagement();
mementoManagement.setMemento(memento);
System.out.println(origin.getValue());
origin.setValue("saveData2");
System.out.println(origin.getValue());
origin.getMementoState(mementoManagement.getMemento());
System.out.println(origin.getValue());
}