备忘录模式:保存对象的某一时刻的状态,进行存储
优点:实现对象的回滚,可以对数据进行恢复和保存
标准类图:
主体类:
public class Originator {
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public void restore(Memo memo){
this.setState(memo.getState());
}
public Memo createMemo(){
return new Memo(this.state);
}
}
备忘录类:
public class Memo {
private String state;
public Memo(String state) {
this.state = state;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
备忘录管理器:
public class Caretaker {
private Memo memo;
public Caretaker(Memo memo) {
super();
this.memo = memo;
}
public Memo getMemo() {
return memo;
}
public void setMemo(Memo memo) {
this.memo = memo;
}
}
场景类:
public class Client {
public static void main(String[] args) {
Originator originator = new Originator();
originator.setState("state1");
Caretaker caretaker = new Caretaker(originator.createMemo());
System.out.println(originator.getState());
originator.setState("state2");
System.out.println(originator.getState());
originator.restore(caretaker.getMemo());
System.out.println(originator.getState());
}
}