备忘录模式

设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

 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

源码地址:https://files.cnblogs.com/files/xiluhua/designPattern.rar

欢迎亲们评论指教。

posted @ 2015-04-10 10:14  xiluhua  阅读(148)  评论(0编辑  收藏  举报