
发起人 即需要备忘的类
public class Originator {
private String state;
public Memento CreateMemento() {
return new Memento(state);
}
public void setMemento(Memento memento) {
this.state = memento.getState();
}
@Override
public String toString() {
return "当前状态 : " + state;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
备忘录 用于保存某个事物的状态信息
public class Memento {
private String state;
public Memento(String state) {
this.state = state;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
备忘录管理者 对客户端隐藏备忘录的具体实现
public class Caretaker {
private Memento memento;
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
测试主类
public class Main {
public static void main(String[] args) {
Originator originator = new Originator();
originator.setState("状态 1");
System.out.println(originator);
Caretaker caretaker = new Caretaker();
caretaker.setMemento(originator.CreateMemento());
originator.setState("状态 2");
System.out.println(originator);
originator.setMemento(caretaker.getMemento());
System.out.println(originator);
}
}
输出结果
当前状态 : 状态 1
当前状态 : 状态 2
当前状态 : 状态 1