设计模式目录
http://blog.csdn.net/fenglailea/article/details/52733435
风.fox

备忘录模式 Memento Pattern

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态

通用类图

组成

  • 发起人角色 Originator
    记录当前时刻的内部状态,负责定义那些属于备份范围的状态,负责创建和恢复备忘录数据
  • 备忘录角色 Memento
    负责存储Originator 发起人对象的内部状态,在需要的时候提供发起人需要的内部状态
  • 备忘录管理员角色 Caretaker
    对备忘录进行管理、保存和提供备忘录

通用源码

JAVA

//发起人角色
public class Originator{//内部状态private String state="";public String getState(){return state;}public String setState(String state){this.state=state;}//创建一个备忘录public Memento createMemento(){return new Memento(this.state);}//恢复一个备忘录public void restoreMemento(Memento _memento){this.setState(_memento.getState());}
}
//备忘录角色
public class Memento{//发起人的内部状态private String state="";//构造函数传递参数public Memento(String _state){this.state=_state;}public Sting getState(){return state;}public void setState(String state){this.state=state;}
}
//备忘录管理员角色
public class Caretaker{//备忘录对象private Memento memento;public Memento getMemento(){return memento;}public void setMemento(Memento memento){this.memento=memento;}
}
//场景
public class Client{public static void main(String[] args){//定义出发起人Originator originator =new Originator();//定义出备忘录管理员Caretaker caretaker=new Caretaker();//创建一个备忘录caretaker.setMemento(originator.createMemento());//恢复一个备忘录caretaker.restoreMemento(caretaker.getMemento());}
}

使用场景

需要保存和恢复数据的相关场景
提供一个可回滚(rollback)的操作
需要监控的腐败场景中
数据库链接的事务管理就是用的备忘录模式

适配器模式之备忘录模式相关推荐

  1. 7、大话设计模式--状态模式 、适配器模式、备忘录模式、组合模式、迭代器模式

    第十六章:无尽加班何时休--状态模式 状态模式 :   优点: 缺点: 所使用的项目是:工作状态 功能: 界面: 设计思路: 收获: 附: 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出 ...

  2. 设计模式之备忘录模式(Memento)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  3. Java设计模式之行为型:备忘录模式

    在开发过程中,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态.比如,在编程时假如编写失误,例如不小心误删除了几行代码,我们希望返回删除前的状态,便可以使用 Ctrl+Z 来进行返回,这时 ...

  4. 图解Java设计模式学习笔记——行为型模式(模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式)

    一.模板方法模式(模板模式)--钩子方法 1.需求-豆浆制作问题 编写制作豆浆的程序,说明如下: 制作豆浆的流程选材-->添加配料-->浸泡-->放到豆浆机打碎. 通过添加不同的配料 ...

  5. 设计模式之观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式

    前言 这是设计模式的最后一章,包含了剩余的 行为型模式 中的 观察者模式.中介者模式.迭代器模式.访问者模式.备忘录模式.解释器模式 系列文章 第一章:7种设计原则之单一职责原则.接口隔离原则.依赖倒 ...

  6. 设计模式笔记--备忘录模式

    常用设计模式有23中,分为: 创建型模式(主要用于创建对象) 1.单例模式    2.工厂方法模式    3.抽象工厂模式    4.建造者模式     5.原型模式  行为型模式 (主要用于描述对象 ...

  7. 每天一个设计模式之备忘录模式(Memento Pattern)

    顾名思义,备忘录就是保存一个状态,到需要的时候可以恢复到某一时刻的状态. 一.UML类图 参与者说明 Originator,需要保存状态的对象: Memento,备忘录对象,负责保存记录(即Origi ...

  8. 设计模式 | 备忘录模式及典型应用

    本文的主要内容: 介绍备忘录模式 示例 备忘录模式总结 备忘录模式 备忘录模式经常可以遇到,譬如下面这些场景: 浏览器回退:浏览器一般有浏览记录,当我们在一个网页上点击几次链接之后,可在左上角点击左箭 ...

  9. java备忘录模式应用场景_图解Java设计模式之备忘录模式

    图解Java设计模式之备忘录模式 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态. ...

  10. 设计模式(行为型模式)——备忘录模式(Memento)

    2019独角兽企业重金招聘Python工程师标准>>> 本章讲讲第三类和第四类. 备忘录模式(Memento) 主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫 ...

最新文章

  1. windows系统中,在当前目录下打开cmd命令行的两种方法
  2. ArcGIS License启动无响应
  3. 希尔排序 最坏时间_排序算法(2)
  4. android数据返回,android提交数据后,得到的返回值为一个对象该怎么写?
  5. 中文站最好的WordPress主题推荐
  6. Java流程控制02 选择结构 if结构 switch结构
  7. ntpd时钟同步服务
  8. android bin目录是什么,android bin目录下的.ap_是神马文件?
  9. VideoMatch: Matching based Video Object Segmentation
  10. mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)...
  11. 5. jQuery 效果 - 隐藏和显示
  12. .net通用CMS快速开发框架——问题:Dapper通用的多表联合分页查询怎么破?
  13. Android的Service组件
  14. git创建分支develop,并合并到master
  15. 如何在HTML页面中引入一首网易云音乐以及B站的视频
  16. 哪些网站需要做icp备案申请?
  17. C语言考试判断题-PTA
  18. 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式
  19. 如何使用remix编写solidity智能合约并部署上链
  20. 计算机专业退休有退休金,我参加工作42年,国家公务员退休,二级警督,退休工资为什么按2014年10月份的工资计算机退休费...

热门文章

  1. 创业日记:进入电子商务领域,需未雨绸缪,更要步步谨慎
  2. [导入]SQL Server 索引基础知识(4)----主键与聚集索引
  3. 拓端tecdat|R语言ggplot2 对Facebook用户数据可视化分析
  4. node的里html中写script报错,内置对象 · TypeScript 入门教程
  5. IDEA中使用SQLite数据库
  6. manjaro Linux下使用腾讯会议
  7. SpringBoot @Async注解的学习
  8. Mysql 根类别和子类别,如何在MySQL中设计类别和子类别?
  9. 清华大学操作系统OS学习(十)——处理机调度
  10. mysql 监听 udp_通用TCP、UDP服务监控脚本