设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
1 package designPattern; 2 /** 3 * 备忘录模式 4 * @author Administrator 5 */ 6 public class B18_MementoTest { 7 8 /** 9 * 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 10 * 这样以后就可将该对象恢复到原先保存的状态 11 */ 12 public static void main(String[] args) { 13 Originator originator = new Originator(); 14 originator.setState("in good condition"); 15 Memento memento = new Memento(originator.getState()); 16 Caretaker c = new Caretaker(); 17 c.setMemento(memento); 18 System.out.println(c.getMemento().getState()); 19 } 20 } 21 //momento备忘录存储原发器对象的内部状态。 22 class Memento { 23 24 private String state; 25 26 public Memento(String state) { 27 this.state = state; 28 } 29 30 public String getState() { 31 return state; 32 } 33 34 public void setState(String state) { 35 this.state = state; 36 } 37 } 38 //originator 原发器创建一个备忘录,用以记录当前时刻它的内部状态。使用备忘录恢复内部状态. 39 class Originator { 40 41 private String state; 42 43 public String getState() { 44 return state; 45 } 46 47 public void setState(String state) { 48 this.state = state; 49 } 50 51 public Memento createMemento() { 52 return new Memento(state); 53 } 54 55 public void setMemento(Memento memento) { 56 state = memento.getState(); 57 } 58 59 public void showState(){ 60 System.out.println(state); 61 } 62 } 63 //caretaker 负责保存好备忘录。不能对备忘录的内容进行操作或检查 64 class Caretaker { 65 66 private Memento memento; 67 68 public Memento getMemento(){ 69 return this.memento; 70 } 71 72 public void setMemento(Memento memento){ 73 this.memento = memento; 74 } 75 }
环境:JDK1.6,MAVEN,tomcat,eclipse
源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar
欢迎亲们评论指教。