news 2026/4/22 11:33:48

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/16 11:02:01

Turn.js翻页效果库完整使用教程:从零开始构建数字出版物

Turn.js翻页效果库完整使用教程:从零开始构建数字出版物 【免费下载链接】turn.js The page flip effect for HTML5 项目地址: https://gitcode.com/gh_mirrors/tu/turn.js Turn.js是一款专为HTML5设计的专业翻页效果库,能够为您的数字出版物带来…

作者头像 李华
网站建设 2026/4/16 10:38:40

智能客服系统构建:服务业向“智业”转型的技术路径

随着人工智能、大数据、云计算等技术的成熟,企业服务体系正经历一场深刻变革——从传统的“服务业”走向智能驱动的“智业”。一、技术架构层面智能客服系统一般包括以下模块:意图识别、知识检索/生成、对话管理、多渠道接口、客户画像、行为…

作者头像 李华
网站建设 2026/4/18 18:33:18

如何快速部署Graphiti知识图谱:从零开始的完整指南

如何快速部署Graphiti知识图谱:从零开始的完整指南 【免费下载链接】graphiti 用于构建和查询时序感知知识图谱的框架,专为在动态环境中运行的 AI 代理量身定制。 项目地址: https://gitcode.com/GitHub_Trending/grap/graphiti 还在为AI代理构建…

作者头像 李华
网站建设 2026/4/17 11:02:09

U-2-Net深度学习模型:革新农业病虫害智能检测的技术突破

在智慧农业蓬勃发展的今天,人工智能技术正以前所未有的速度改变着传统农业生产方式。U-2-Net作为一种先进的深度学习模型,凭借其独特的网络设计和强大的图像分割能力,为农作物病虫害的精准识别与防治提供了全新的技术解决方案。 【免费下载链…

作者头像 李华
网站建设 2026/4/18 10:52:13

基于单片机的仓库温湿度无线智能监测系统设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T4092309M设计简介:本设计是基于单片机的仓库温湿度无线智能监测系统设计,主要实现以下功能:通过温湿度传感器检测温湿度…

作者头像 李华