本文共 1967 字,大约阅读时间需要 6 分钟。
备忘录模式(Memento):又称标记模式(Token),在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态(目的)。
//备忘发起角色public class Originator { //状态是私有的 private String state; public Memento createMemento() { return new Memento(this.state); } public void recoverMemento(Memento memento) { this.setState(memento.getState()); } public void show() { System.out.println("state = " + this.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 MementoClient { public static void main(String[] args) { // 设置初始状态 Originator originator = new Originator(); originator.setState("On"); originator.show(); // 管理者通过备忘录保存状态,由于有了很好地封装,可以隐藏Originator的实现细节 CareTaker careTaker = new CareTaker(); careTaker.setMemento(originator.createMemento()); // 改变状态 originator.setState("Off"); originator.show(); // 通过管理者从备忘录中恢复状态 originator.recoverMemento(careTaker.getMemento()); originator.show(); }}
上一篇:
下一篇:转载地址:http://wmrai.baihongyu.com/