1.意图
          在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象外保存这个状态
          这样就可以将该对象恢复到原先保存的状态
          2.参与者
          Memento - 存储对象状态
                  - 防止原发器以外的其它对象访问备忘录
          Originato - 原发器创建一个备忘录,用以记录当前时刻它的内部状态
          
          Caretaker -负责保存好备忘录
                    -不能对备忘录的对象进行操作或者检测

3.结构

4.代码

public class Memento {private String state;public String getState() {return state;}public void setState(String state) {this.state = state;}} public class Originato {private String state;public Memento createMemento() {Memento memento = new Memento();memento.setState(state);return memento;}public void resumeByMemento(Memento memento) {this.state = memento.getState();}public String getState() {return state;}public void setState(String state) {this.state = state;}}public class Caretaker {Memento memento;public Memento getMemento() {return memento;}public void setMemento(Memento memento) {this.memento = memento;}}public class Client {public static void main(String[] args) {Originato o = new Originato();o.setState("1");Caretaker c =new Caretaker();c.setMemento(o.createMemento());o.setState("2");o.setState("3");o.resumeByMemento(c.getMemento());//恢复到一状态System.out.println(o.getState());}}

memento -对象行为型模式相关推荐

  1. Memento(备忘录)--对象行为型模式

    Memento(备忘录)–对象行为型模式 一.意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保持这个状态.这样以后就可将该对象恢复到原先保存的状态. 二.动机 1.在软件构建过程 ...

  2. Command(命令)--对象行为型模式

    Command(命令)–对象行为型模式 一.意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作. 二.动机 1.在软件构建过程中,& ...

  3. Typescript玩转设计模式 之 对象行为型模式(上)

    作者简介 joey 蚂蚁金服·数据体验技术团队 继前面几篇设计模式文章之后,这篇介绍5个对象行为型设计模式. Chain of Responsibility(职责链) 意图 使多个对象都有机会处理请求 ...

  4. 设计模式-对象行为型模式

    [对象行为型模式]涉及到算法和对象间职责的分配,描述了对象和类的模式,以及它们之间的通信模式. 用来对类或对象怎样交互和怎样分配职责进行描述 1.  策略模式(strategy)           ...

  5. 2018.3.31 设计模式之生成器模式详解及例子(对象创建型模式)

    设计模式之生成器模式(对象创建型模式) 1.定义/概念 将一个复杂对象的创建和它的表示分离,使得同样的创建过程可以有不同的表示. 2.生成模式角色 Builder: 生成器接口,定义创建一个Produ ...

  6. Visitor(访问者)--对象行为型模式

    Visitor(访问者)–对象行为型模式 一.意图 表示一个作用于某个对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 二.动机 1.在软件构建过程中,由于需 ...

  7. Strategy(策略)--对象行为型模式

    Strategy(策略)–对象行为型模式 一.意图 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化. 二.动机 1.在软件构建过程中,某些对象使 ...

  8. State(状态)--对象行为型模式

    State(状态)–对象行为型模式 一.意图 允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类. 二.动机 1.在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化 ...

  9. Observer(观察者)--对象行为型模式

    Observer(观察者)–对象行为型模式 一.意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有的依赖于它的对象都得到通知并被自动更新. 二.动机 1.在软件构建过程中,我们需 ...

最新文章

  1. 大系统观:第2章 系统论概述
  2. redis3.0 java spring_spring整合redis以及使用RedisTemplate的方法
  3. 文献学习(part47)--A novel consensus learning approach to incomplete multi-view clustering
  4. OpenCV图像或视频显示在VC对话框中的方法
  5. android 源码中的单例,Android源码中的一种单例实现
  6. js判断变量类型是否为字符串,不符合条件则赋值为‘无’
  7. php中怎么引用js变量_理解下 Go 中的引用是怎么回事
  8. 【电力负荷预测】基于matlab粒子群算法优化支持向量机预测电力负荷【含Matlab源码 1225期】
  9. 防163网易邮箱登录界面html,网易邮箱163,网易邮箱163登录界面
  10. 撬动百亿台设备,让物联网“造”起来!
  11. 手把手教你开发 MyBatis 插件
  12. 洛克菲勒写给儿子的38封信(上)、起点不决定终点、别让精神破产、我奋斗,我成功、我不依赖天赐的运气,但我靠策划运气平步青云、后退就是投降
  13. 项目管理学习总结(20)——小团队管理与大团队管理
  14. SQL Server卸载不干净和重新安装问题
  15. java jpress,JPress导入Eclipse
  16. 2011年国庆2天厦门到平潭岛湄洲岛自驾游
  17. 超图导入ArcGIS数据文件
  18. Android自定义控件三部曲
  19. 台式电脑回收站删除的文件怎么找回
  20. 计算机二级office考试试题分布,计算机二级MS-OFFICE考试ECEL题型汇总附答案.pdf

热门文章

  1. OpenCV-图像旋转Rotate
  2. 应用文书信小作文各种信件整理模板(建议、介绍/推荐、邀请、通知告示、纪要)
  3. 10款提效的在线设计工具推荐
  4. 【微服务|openfeign】使用openfeign远程调用文件上传接口
  5. Ajax 跨域难题 - 原生 JS 和 jQuery 的实现对比
  6. cadence 元件之二极管
  7. 量化投资学习-38:通过非线性函数的极值看股市的运行规律
  8. java palette_Palette使用简介与实现原理
  9. 基于javaweb的电影在线观看系统(java+ssm+jsp+layui+mysql)
  10. 【Python】面向对象版学生管理系统(文末有源代码)