用备忘录模式实现C++对象状态的保存和恢复
备忘录模式是一种行为型设计模式,它允许对象在不暴露其实现细节的情况下保存和恢复状态。备忘录模式由三个主要组件组成:原发器(Originator)、备忘录(Memento)和负责人(Caretaker)。其中,原发器是要被保存和恢复状态的对象,备忘录是用于保存原发器状态的对象,负责人则负责存储和管理备忘录。
在C++中,我们可以使用类来实现原发器、备忘录和负责人。以下是一个简单的例子:
#include <iostream>
#include <vector>
// 备忘录
class Memento {
public:
Memento(const std::string& state) : state_(state) {}
const std::string& GetState() const { return state_; }
private:
std::string state_;
};
// 原发器
class Originator {
public:
void SetState(const std::string& state) { state_ = state; }
std::string GetState() const { return state_; }
// 创建备忘录
Memento CreateMemento()