TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
搜索到 1 篇与 的结果
2025-07-29

C++备忘录模式:对象状态的时光回溯术

C++备忘录模式:对象状态的时光回溯术
一、备忘录模式的核心价值在软件开发中,我们常遇到这样的场景:用户点击了三次"撤销"按钮,系统需要回退到三个操作前的状态。传统做法可能是直接暴露对象内部状态进行修改——这就像为了给病人抽血而必须切开胸腔,显然违背了面向对象设计的封装原则。备忘录模式(Memento Pattern)通过引入"状态快照"的概念,在不破坏封装性的前提下,实现了对象状态的保存与恢复。其精妙之处在于: - 原发器(Originator):拥有需要保存的状态 - 备忘录(Memento):存储原发器内部状态的快照 - 看管人(Caretaker):负责保存和管理备忘录,但不直接操作内容二、C++实现的三重奏1. 基础结构定义cpp // 备忘录类(状态容器) class TextMemento { friend class TextEditor; // 关键友元声明 std::string state_; TextMemento(const std::string& s) : state_(s) {} };// 原发器(状态拥有者) class TextEditor { ...
2025年07月29日
6 阅读
0 评论