当前位置: 首页 > news >正文

设计模式篇之 备忘录模式 Memento

别名:快照

目的

备忘录是一种行为型设计模式,它让你可以在不暴露实现细节的情况下保存和恢复对象的先前状态。

问题

假设你正在创建一个文本编辑器应用程序。除了简单的文本编辑外,你的编辑器还可以格式化文本、插入内联图像等。

在某个时刻,你决定让用户能够撤销对文本执行的任何操作。多年来,这一功能变得如此常见,以至于如今人们期望每个应用程序都具备它。对于实现方式,你选择了直接的方法。在执行任何操作之前,应用程序会记录所有对象的状态并将其保存在某个存储中。稍后,当用户决定撤销某个操作时,应用程序会从历史记录中获取最新的快照,并使用它来恢复所有对象的状态。

在执行操作之前,应用程序会保存对象状态的快照,稍后可以使用它将对象恢复到其先前的状态。

让我们来思考一下这些状态快照。你究竟该如何生成一个呢?你可能需要遍历对象中的所有字段,并将其值复制到存储中。然而,这只有在对象对其内容的访问限制相当宽松的情况下才可行。不幸的是,大多数实际对象不会让别人轻易地窥视它们的内部,而是将所有重要的数据隐藏在私有字段中。

暂时忽略这个问题,假设我们的对象表现得像嬉皮士:倾向于开放的关系,并保持其状态公开。虽然这种方法可以解决眼前的问题,并让

http://www.dtcms.com/a/490053.html

相关文章:

  • dw做的网站放文件夹网页生成桌面快捷方式
  • 2017流行的网站风格随州网站建设价格
  • 鸿蒙:使用媒体查询监听屏幕方向、切换横竖屏
  • 8.list的使用
  • 网页跳转github镜像
  • 安灯系统(Andon)如何为汽车工厂打造零延迟响应
  • C++(条件判断与循环)
  • 温州建设局网站首页中国企业名录黄页
  • linux/centos迁移conda文件夹
  • Quill 富文本编辑器 功能介绍,使用场景说明,使用示例演示
  • 网站生成器怎么做网站建设与管理实训主要内容
  • 网站信用认证可以自己做吗稀奇古怪好玩有用的网站
  • MySQL 基础语句
  • Linux中CPU初始化和调度器初始化函数的实现
  • MATLAB基于ST-CNN-SVM的轴承故障诊断,S变换和卷积神经网络结合支持向量机
  • 在优豆云免费云服务器上初探SSH与SCP的便捷操作
  • MySQL数据库:软件、相关知识和基本操作
  • Bahdanau注意力
  • 重生之我在大学自学鸿蒙开发第七天-《AI语音朗读》
  • Spring AI 1.0 GA 深度解析:Java生态的AI革命已来
  • Linux网络之----TCP网络编程
  • 【零基础学习CAPL语法】——writeLineEx() 函数
  • 计算机网络数据链路层
  • 做网站选什么专业门户网站开发步骤博客
  • 论文写作 24: 全文保持同样的节奏
  • 洛谷 P1438 无聊的数列 题解
  • iOS混淆与IPA加固实战手记,如何构建苹果应用防反编译体系
  • 想抓PostgreSQL里的慢SQL?pg_stat_statements基础黑匣子和pg_stat_monitor时间窗,谁能帮你更准揪出性能小偷?
  • 把 iOS 26 的「Liquid Glass」带进 React Native
  • 基于物理信息的神经网络求解偏微分方程反问题的综合优化策略