设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
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
欢迎亲们评论指教。