适配器模式之备忘录模式
设计模式目录
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)的操作
需要监控的腐败场景中
数据库链接的事务管理就是用的备忘录模式
适配器模式之备忘录模式相关推荐
- 7、大话设计模式--状态模式 、适配器模式、备忘录模式、组合模式、迭代器模式
第十六章:无尽加班何时休--状态模式 状态模式 : 优点: 缺点: 所使用的项目是:工作状态 功能: 界面: 设计思路: 收获: 附: 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出 ...
- 设计模式之备忘录模式(Memento)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- Java设计模式之行为型:备忘录模式
在开发过程中,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态.比如,在编程时假如编写失误,例如不小心误删除了几行代码,我们希望返回删除前的状态,便可以使用 Ctrl+Z 来进行返回,这时 ...
- 图解Java设计模式学习笔记——行为型模式(模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式)
一.模板方法模式(模板模式)--钩子方法 1.需求-豆浆制作问题 编写制作豆浆的程序,说明如下: 制作豆浆的流程选材-->添加配料-->浸泡-->放到豆浆机打碎. 通过添加不同的配料 ...
- 设计模式之观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式
前言 这是设计模式的最后一章,包含了剩余的 行为型模式 中的 观察者模式.中介者模式.迭代器模式.访问者模式.备忘录模式.解释器模式 系列文章 第一章:7种设计原则之单一职责原则.接口隔离原则.依赖倒 ...
- 设计模式笔记--备忘录模式
常用设计模式有23中,分为: 创建型模式(主要用于创建对象) 1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.建造者模式 5.原型模式 行为型模式 (主要用于描述对象 ...
- 每天一个设计模式之备忘录模式(Memento Pattern)
顾名思义,备忘录就是保存一个状态,到需要的时候可以恢复到某一时刻的状态. 一.UML类图 参与者说明 Originator,需要保存状态的对象: Memento,备忘录对象,负责保存记录(即Origi ...
- 设计模式 | 备忘录模式及典型应用
本文的主要内容: 介绍备忘录模式 示例 备忘录模式总结 备忘录模式 备忘录模式经常可以遇到,譬如下面这些场景: 浏览器回退:浏览器一般有浏览记录,当我们在一个网页上点击几次链接之后,可在左上角点击左箭 ...
- java备忘录模式应用场景_图解Java设计模式之备忘录模式
图解Java设计模式之备忘录模式 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态. ...
- 设计模式(行为型模式)——备忘录模式(Memento)
2019独角兽企业重金招聘Python工程师标准>>> 本章讲讲第三类和第四类. 备忘录模式(Memento) 主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫 ...
最新文章
- windows系统中,在当前目录下打开cmd命令行的两种方法
- ArcGIS License启动无响应
- 希尔排序 最坏时间_排序算法(2)
- android数据返回,android提交数据后,得到的返回值为一个对象该怎么写?
- 中文站最好的WordPress主题推荐
- Java流程控制02 选择结构 if结构 switch结构
- ntpd时钟同步服务
- android bin目录是什么,android bin目录下的.ap_是神马文件?
- VideoMatch: Matching based Video Object Segmentation
- mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)...
- 5. jQuery 效果 - 隐藏和显示
- .net通用CMS快速开发框架——问题:Dapper通用的多表联合分页查询怎么破?
- Android的Service组件
- git创建分支develop,并合并到master
- 如何在HTML页面中引入一首网易云音乐以及B站的视频
- 哪些网站需要做icp备案申请?
- C语言考试判断题-PTA
- 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式
- 如何使用remix编写solidity智能合约并部署上链
- 计算机专业退休有退休金,我参加工作42年,国家公务员退休,二级警督,退休工资为什么按2014年10月份的工资计算机退休费...
热门文章
- 创业日记:进入电子商务领域,需未雨绸缪,更要步步谨慎
- [导入]SQL Server 索引基础知识(4)----主键与聚集索引
- 拓端tecdat|R语言ggplot2 对Facebook用户数据可视化分析
- node的里html中写script报错,内置对象 · TypeScript 入门教程
- IDEA中使用SQLite数据库
- manjaro Linux下使用腾讯会议
- SpringBoot @Async注解的学习
- Mysql 根类别和子类别,如何在MySQL中设计类别和子类别?
- 清华大学操作系统OS学习(十)——处理机调度
- mysql 监听 udp_通用TCP、UDP服务监控脚本