前言

备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"可吃。

备忘录模式在源码中的应用

spring中webflow的StateManageableMessageContext

备忘录模式UML类图

备忘录模式实际应用
  • 发起人角色类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RoleOriginator {private int power;private int lifeTimes;public Memento storeMemento() {return new Memento(this.power, this.lifeTimes);}public void reStoreMemento(Memento memento) {this.powe

Java之备忘录模式相关推荐

  1. Java设计模式——备忘录模式

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

  2. Java设计模式(备忘录模式-解释器模式-状态模式-策略模式-职责链模式)

    Java设计模式Ⅶ 1.备忘录模式 1.1 备忘录模式概述 1.2 代码理解 2.解释器模式 2.1 解释器模式概述 3.状态模式 3.1 状态模式概述 3.2 代码理解 4.策略模式 4.1 策略模 ...

  3. java设计模式---备忘录模式

    一.引子 俗话说:世上难买后悔药.所以凡事讲究个"三思而后行",但总常见有人做"痛心疾首"状:当初我要是--.如果真的有<大话西游>中能时光倒流的& ...

  4. Java笔记-Java中备忘录模式

    首先设计模式代表外招功法,是外招的模板,个人觉得他是为面向对象7个原则而准备的: 面向对象程序设计要考虑7个原则: 单一职责原则:设计目的单一的类: 开放封闭原则:对扩展开发,对修改封闭: 李氏替换原 ...

  5. java之备忘录模式,java设计模式之备忘录模式

    java设计模式之备忘录模式 代码无错便是优? 简介: 在不破坏封装性的前提下 , 捕获一个对象的内部状态,并在该对象之外保存这个状态 , 这样以后就可以将该对象恢复到原先保存的状态 . 备忘录模式就 ...

  6. Java设计模式--备忘录模式

    游戏角色状态恢复问题         游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大 战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态 传统方案解决游戏 ...

  7. java实现备忘录模式_设计模式之第17章-备忘录模式(Java实现)

    设计模式之第17章-备忘录模式(Java实现) 好男人就是我,我就是曾小贤.最近陈赫和张子萱事件闹得那是一个沸沸扬扬.想想曾经每年都有爱情公寓陪伴的我现如今过年没有了爱情公寓总是感觉缺少点什么.不知道 ...

  8. java memento_备忘录模式-Memento Pattern(Java实现)

    备忘录模式-Memento Pattern Memento备忘录设计模式是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到以前保存的状态. 本文中的场景: 有一款游戏可以随时存档, ...

  9. JAVA 设计模式 备忘录模式

    用途 备忘录模式 (Memento) 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 这样以后就可将该对象恢复到原先保存的状态. 备忘录模式是一种行为型模式. 结构 图- ...

  10. java设计模式-备忘录模式

    备忘录模式详解 备忘录模式又叫作快照模式或Token模式,是一种对象的行为模式.在备忘录模式里,一个备忘录是一个对象,它存储另一个对象(原发器对象)在某个瞬间的内部状态.备忘的目的就是为了以后在需要的 ...

最新文章

  1. 浅析linux容器--Docker
  2. 【运维囧事】事先没想到客户光驱坏了,主要原因还是自己当初经验不足
  3. BBSSDK论坛移动化实现方案
  4. matlab中nlfilter函数,matlab的一些关于块分类的函数~~~
  5. Failed to execute request because the App-Domain could not be created
  6. Python XML解析
  7. 题目1022:游船出租(结构体使用)
  8. 每天一个linux命令(55)--at命令
  9. 数据库原理(一)—— 关系代数
  10. 针对Web系统常用的功能测试方法浅析
  11. python实现微信自动回复_python实现微信自动回复功能
  12. java抽象类详细介绍
  13. RAC知识更新之-RAC节点删除添加服务+维护RAC ocr表(摘自文平书)
  14. python3.8如何正确安装使用ExcelLibrary
  15. 【python+selenium】自动登陆学校青果教务网
  16. 深度学习工作站装机指南
  17. word电子签名在线制作
  18. Scheduled里面报错No thread-bound request found
  19. 服务端使用GZIP压缩数据
  20. 像素级分层语义图像分割

热门文章

  1. winaip文档服务器已停止工作,Win7系统中Office(2016或者2016)_Word已停止工作”的终极解决方案.doc...
  2. 权限管理AppOpsManager
  3. python:拟合高斯模型
  4. 大数据时代下的隐私保护
  5. CSS无法使用/bootst无法使用
  6. 个人在使用vue中引入jquery和bootst整理的笔记,开始看了网上很多实例方法,都基本没成功
  7. 配置案例-ModbusTCP转Profinet网关连接拧紧轴驱动器
  8. 了解导航网格 Navigation Mesh
  9. 【免费教程】 高光谱遥感原理及地表主要信息提取及项目实战经验分享
  10. 根据身份证号中的日期判断某人是否已满18岁及是否已满60岁