大话设计模式----备忘录模式
一、备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
二、代码示例
@Data public class Memento { private String state; public Memento(String state) { this.state = state; } } @Data public class Originator { private String state; public Memento createMemento(){ return new Memento(state); } public void setMemento(Memento memento){ state = memento.getState(); } public void show(){ System.out.println("state = " + state); } } @Data public class Caretaker { private Memento memento; } public class Test { public static void main(String[] args) { Originator originator = new Originator(); originator.setState("ON"); originator.show(); Caretaker caretaker = new Caretaker(); caretaker.setMemento(originator.createMemento()); originator.setState("OFF"); originator.show(); originator.setMemento(caretaker.getMemento()); originator.show(); } }
三、适用场景
适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以根据保存的Memento信息还原到前一状态。
使用备忘录可以把复杂的对象内部信息对其他的对象屏蔽起来。

浙公网安备 33010602011771号