Реализации на С++
Memento
Общая реализация на языке С++
# include <iostream>
# include <memory>
# include <list>
using namespace std;
int main()
{
auto originator = make_unique<Originator>(1);
auto caretaker = make_unique<Caretaker>();
cout << "State = " << originator->getState() << endl;
caretaker->setMemento(originator->createMemento());
originator->setState(2);
cout << "State = " << originator->getState() << endl;
caretaker->setMemento(originator->createMemento());
originator->setState(3);
cout << "State = " << originator->getState() << endl;
caretaker->setMemento(originator->createMemento());
originator->restoreMemento(caretaker->getMemento());
cout << "State = " << originator->getState() << endl;
originator->restoreMemento(caretaker->getMemento());
cout << "State = " << originator->getState() << std::endl;
originator->restoreMemento(caretaker->getMemento());
cout << "State = " << originator->getState() << std::endl;
}
Last updated
Was this helpful?