备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象实现细节的情况下保存和恢复对象内部状态。该模式通常包括三个角色:发起者(Originator)、管理者(Caretaker)和备忘录(Memento)。
以下是一个简单的 C++ 示例,演示如何使用备忘录模式来保存和恢复具有两个内部状态的对象。
1 | #include <iostream> |
代码解释
Memento 类:用于存储
Originator
对象的内部状态(state1
和state2
)。Originator 类:
- 持有状态(
state1_
和state2_
)。 - 提供
setState
方法来设置状态。 - 提供
showState
方法来显示当前状态。 - 提供
createMemento
方法来创建当前状态的备忘录。 - 提供
restoreMemento
方法来从备忘录恢复状态。
- 持有状态(
Caretaker 类:
- 用于保存和恢复备忘录。
- 提供
setMemento
方法来保存备忘录。 - 提供
getMemento
方法来获取备忘录。
main 函数:
- 创建一个
Originator
对象并设置初始状态。 - 创建一个
Caretaker
对象并保存备忘录。 - 修改
Originator
对象的状态。 - 从
Caretaker
对象恢复备忘录。
- 创建一个
这个示例展示了如何使用备忘录模式来保存和恢复对象的内部状态,同时保持对象的封装性和完整性。