相关文章
设计模式速记-备忘录模式
2025-01-03 10:05

一、备忘录模式简介

1. 什么是备忘录模式

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

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

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

2. 用途

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

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

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

3.备忘录模式的优缺点

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

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

缺点也比较明显

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

二、备忘录模式的实现

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

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

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

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

  • 备忘录(Memento

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

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

     
  2. 备忘录(Memento

     
  3. 管理者(Caretaker

     
  4. 测试类

     
  5. 测试结果

        以上就是本篇文章【设计模式速记-备忘录模式】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/quote/12275.html 
         栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站http://ww.kub2b.com/mobile/,查看更多   
发表评论
0评