推广 热搜: 企业  可以  page  搜索引擎  行业  百度    选择  个数  使用 

设计模式速记-备忘录模式

   日期:2025-01-03     移动:http://ww.kub2b.com/mobile/quote/12275.html

一、备忘录模式简介

1. 什么是备忘录模式

备忘录模式又称快照模式或者Token模式,属于***行为模式***,备忘录模式定义

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

简而言之,备忘录模式的目的在于记录某对象在某一时刻的状态,当对象状态发生改变后,通过该备忘录再恢复到当前状态的方法模式。

2. 用途

备忘录模式的用途主要是方便对象回退到之前的某个状态,在生活中有以下例子可以比较清楚的理解备忘录模式的本质

  • 游戏中的存档、退档
  • Windows系统或者Word等编辑器的+功能
  • 浏览器中的回退页面功能
  • 数据库中的备份、回滚功能
  • 棋类游戏的悔棋功能

通过上述例子即可清晰的看出,备忘录模式旨在记录之前的状态

3.备忘录模式的优缺点

作为一种对象行为型模式,备忘录模式的主要优点如下

  • 提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。
  • 实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。
  • 简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由管理者进行管理,这符合单一职责原则。

缺点也比较明显

  • 如果要保存的状态比较多,将会使占用的内存资源比较大,浪费内存资源。

二、备忘录模式的实现

1. 涉及的角色
  • 发起人(Originator

    • 发起人提供当前状态给备忘录,即备忘录记录的是发起人的状态

    • 发起人负责提供状态、提供创建备忘录、恢复备忘录等功能

    • 它可以访问备忘录中的所有信息。

  • 备忘录(Memento

    • 备忘录负责记录发起人的状态;在发起人需要的时候提供所有信息给发起人
  • 管理者(Caretaker

    • 管理者对备忘录进行管理
    • 提供保存和获取备忘录功能
    • 管理者不可访问备忘录信息
2. 示例代码(Java版
  1. 发起人(Originator

     
  2. 备忘录(Memento

     
  3. 管理者(Caretaker

     
  4. 测试类

     
  5. 测试结果


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号