博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
备忘录模式
阅读量:6077 次
发布时间:2019-06-20

本文共 1845 字,大约阅读时间需要 6 分钟。

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

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

欢迎亲们评论指教。

转载地址:http://tfxgx.baihongyu.com/

你可能感兴趣的文章
DNS主从服务器中域(zone)文件类型不一致问题的解决方法
查看>>
shell进阶
查看>>
图文解释XCode常用快捷键的使用
查看>>
超详细XP蓝屏代码大全
查看>>
leopard 10.5 安装全程[总结]
查看>>
Unity 协程运行时的监控和优化
查看>>
查询用户信息
查看>>
PostgreSQL 整型int与布尔boolean的自动转换设置(含自定义cast与cast规则介绍)
查看>>
paramiko使用1
查看>>
GUI技巧——关于单选框
查看>>
Enterprise Library 2.0 Hands On Lab 翻译(4):日志应用程序块(一)
查看>>
推荐两个BAT编辑器
查看>>
再次测试使用Live Writer 2011发布图文BLOG
查看>>
linux下常用监控cacti的安装和配置
查看>>
虚拟化系列-VMware vSphere 5.1 简介与安装
查看>>
WCF的实例管理
查看>>
企业用户如何防病毒
查看>>
图文并茂讲解VMware三种网络模式
查看>>
Exchange Server 2010部署(四)安装Exchange 2010邮箱角色服务器
查看>>
jQuery:理解$(document).ready()的特殊写法
查看>>