java 备忘录形式
java 备忘录模式
package memento; /** * 备忘录(用于存放状态的类) * @author Administrator * */ 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; } }
package memento; /** * 保存和读取备忘录的类 * @author Administrator * */ public class Creater { private Memento memento; /** * 保存备忘录 * @param memento */ public void saveMemento(Memento memento){ this.memento=memento; } /** * 读取存档 * @return */ public Memento readMemento(){ return this.memento; } }
package memento; /** * 发起人角色 负责创建备忘录对象将自己的内部状态存储起来 * @author Administrator * */ public class Originator { private String state; /** * 创建备忘录 * @param state * @return */ public Memento createMemento(){ return new Memento(state); } /** * 读取存档复制给state * @param memento */ public void restoreMemento(Memento memento){ this.state = memento.getState(); } public String getState() { return state; } public void setState(String state) { this.state = state; System.out.println("state is "+state); } }
package memento; /** * Client 客户端类 * @author Administrator * */ public class MementoMain { public static void main(String[] args) { Originator org = new Originator(); org.setState("ON"); Memento m = org.createMemento(); Creater c= new Creater(); c.saveMemento(m); org.setState("OFF"); org.restoreMemento(c.readMemento()); System.out.println(org.getState()); } }