请登录

Github帐号登录
博主提供技术支持服务,项目代做等服务QQ975532442
  • 首页
  • 博客
  • 算法
  • 前端
  • Linux
  • 数据库
  • 后端
  • 标签
  • 友情链接
  • 登录
  • 注册
2298°
牧码人
发表于: 2019-09-29 15:32

23个设计模式之备忘录模式

什么是备忘录模式

来自大话:在不破坏封装性的前提下,捕获对象的内部状态,并且在对象之外保存这个状态。这样以后可以恢复到这个状态。” 备忘录模式类图.png

解释下:备忘录模式就是保存一个状态,或者很多东西。但是不能破坏封装性的前提下去保存。并且这个保存的东西是在这个对象之外。

可以看出这个模式有两个重点

  • 不破坏封装性
这点尤其重要,保存的状态或者数据。不能通过外部改变。如果外部随便改变那么这叫狗屁备忘录啊。你游戏存档的信息,外部也改变不了吧。
  • 保存在对象之外
这一点是为了单一职责原则。

所以我们再来看类图

Originator:系统的当前状态 memento:存档的具体信息类。 Caretaker:负责保存memento

可以看到需要存档的时候就调用 Originator.createMenro();方法然后赋值给Caretaker保存好当前的备份信息。

需要回档的时候调用setMemento方法把第三方存好的备份信息赋值给Originator这个类就行了。这就是整个一个备份的过程.

总结

这个模式用的最多的场景应该是游戏中了。因为游戏中状态位多。在web场景中用的比较少,在撤销时可能会用到。


注意:本文归作者所有,未经作者允许,不得转载

点赞 0
#设计模式
阅读全部

已有 0 条评论

    我有话说: @

    热门文章

    1. java根据模板导出pdf(带源码)

      5907 阅读
    2. webSocket部署到远程服务器连接不上

      4665 阅读
    3. 本站看点

      4510 阅读
    4. 史上最详细linux上安装mysql(centos7)

      3946 阅读
    5. 23种设计模式合集(学习笔记)

      3845 阅读
    6. 记一次Git fork的经历

      3498 阅读
    7. 1.服务的注册与治理(eureka)

      3297 阅读
    8. 2018第九届届蓝桥杯国赛回顾(真题解析)

      3289 阅读
    Copyright © 牧码人 赣ICP备2022000459号