/** * 发起者 * @author zhulin * */ public class Originator { private String state;//状态 public String getState() { return state; } public void setState(String state) { this.state = state; } //单例创建一个备忘录 public Mementor createMementor() { return new Mementor(this.getState()); } //回到某个备忘录中 public void rollBackState(Mementor mementor) { this.setState(mementor.getState()); } }
/** * 备忘录者 * @author zhulin * */ public class Mementor { private String state;//保存的是发起者的状态 public Mementor(String state) { this.setState(state); } public String getState() { return state; } public void setState(String state) { this.state = state; } }
/** * 备忘录管理者 * @author zhulin * */ public class Caretaker { private Mementor mementor; public Mementor getMementor() { return mementor; } public void setMementor(Mementor mementor) { this.mementor = mementor; } }public class Test { /** * @param args */ public static void main(String[] args) { Originator originator = new Originator(); originator.setState("我存在过去..."); // 保存备忘录 Caretaker caretaker = new Caretaker(); caretaker.setMementor(originator.createMementor()); // 重新设置状态 originator.setState("我存在当前...."); System.out.println(originator.getState()); // 回滚状态 System.out.println("我要回到过去!!!!"); originator.rollBackState(caretaker.getMementor()); System.out.println(originator.getState()); System.out.println("Yes 我回到过去了!!"); } }
java 备忘录模式
做做笔记吧....