news 2026/4/18 2:25:05

Python设计模式:备忘录模式详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python设计模式:备忘录模式详解

更多内容请见: 《Python3案例和总结》 - 专栏介绍和目录

文章目录

    • 一、备忘录模式概述
      • 1.1 什么是备忘录模式?
      • 1.2 解决的问题:状态的安全隔离与恢复
      • 1.3 备忘录模式的结构与角色
      • 1.4 备忘录模式的优缺点
      • 1.5 应用场景
    • 二、 Python代码实现:一个简单的文本编辑器
      • 2.1 步骤1:定义备忘录 和原发器
      • 2.2 步骤2:定义管理者
      • 2.3 步骤3:客户端调用
      • 2.4 执行结果
    • 三、 深入探讨:备忘录的两种实现方式
      • 3.1 深拷贝(Deep Copy)方式
      • 3.2 自定义备忘录类(窄接口)方式

一、备忘录模式概述

1.1 什么是备忘录模式?

备忘录模式属于行为型设计模式,其核心思想是:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

想象一下你正在玩一款角色扮演游戏。在挑战一个艰难的地下城之前,你会在存档点保存游戏。这个“存档”就是备忘录。它记录了你角色当前的所有信息:等级、生命值、装备、任务进度等。如果在挑战中失败了,你可以选择“读取存档”,角色的一切都将恢复到保存时的状态。在这个过程中,游戏系统(原发器)负责创建存档,存档本身(备忘录)只负责存储数据,而你(管理者/负责人)决定何时保存和何时读取。

1.2 解决的问题:状态的安全隔离与恢复

备忘录模式主要解决两个关键问题:

  1. 保持封装边界:对象的内部状态通常是私有的,不应该暴露给外部对象。备忘录模式通过创建一个独立的“备忘录”对象来存储状态,这个备忘录通常是一个窄接口或私有类,只有原发器才能访问其完整内容,从而保证了状态信息的安全性和封装性。
  2. 提供状态回滚机制:它为用户提供了一种简单、安全的撤销或重做机制。系统可以随时创建当前状态的快照,并在需要时将对象恢复到任何一个历史快照。

1.3 备忘录模式的结构与角色

备忘录模式通常包含以下三个核心角色:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:25:02

VBA-Web:让Excel和Office轻松连接Web服务的强大工具

VBA-Web:让Excel和Office轻松连接Web服务的强大工具 【免费下载链接】VBA-Web VBA-Web: Connect VBA, Excel, Access, and Office for Windows and Mac to web services and the web 项目地址: https://gitcode.com/gh_mirrors/vb/VBA-Web 在现代办公环境中&…

作者头像 李华
网站建设 2026/4/17 8:50:04

K8S系列之5.3:应用健康与可观测性(探针、监控与日志)

在分布式系统中,没有可观测性的应用就像在黑暗中飞行。本章将为你构建完整的"眼睛"和"耳朵",让你不仅能及时发现故障,更能预知问题,实现真正的自动驾驶式运维。 引言:可观测性的三重维度 云原生时代,可观测性已经从"可有可无"变成"必…

作者头像 李华
网站建设 2026/4/18 2:24:21

Springboot学生选课系统576i3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能:优秀教师,学生风采,学生,教师,院系信息,专业信息,课程信息,学生选课,重修报名,优秀公开课,学生成绩,班级成绩开题报告内容一、选题背景与意义1. 选题背景随着高校信息化建设的推进,传统的手工选课方式已无法满足现代教学管理的…

作者头像 李华
网站建设 2026/4/18 2:24:27

Python自动化测试福音:Chrome下载助手2.0发布!一键配置ChromeDriver路径,下载、跳转、移动全自动化

前一阵子小编推出的自研软件「Chrome下载助手」,意外地受到了不少小伙伴的喜爱。很多小伙伴评论表示:“这才是自动化该做的事情——解决真实、高频、又琐碎的日常问题”。 这里非常感谢小伙伴们的支持~的确,自动化又不是为了炫技的…

作者头像 李华
网站建设 2026/4/12 10:17:21

TL494降压转换器完整设计方案:从原理到实践的电源管理指南

TL494降压转换器完整设计方案:从原理到实践的电源管理指南 【免费下载链接】BUCK电路-TL494方案资源下载 本仓库提供了一个完整的BUCK电路设计方案,基于TL494控制芯片。该方案包含了详细的原理图、PCB设计文件以及Gerber文件,方便用户进行电路…

作者头像 李华
网站建设 2026/4/11 21:16:58

SkyReels V1 人像视频生成模型的技术拆解与实战指南

如果一只戴墨镜的猫能在泳池边当救生员,那么你也可以用一张照片或一段文字让故事动起来。SkyReels V1 的目标,就是把这种魔法装进可落地的推理框架里。 1. 项目背景:从“能生成”到“敢上线” 文本生成视频(T2V)和图生…

作者头像 李华