Патерн Memento отримує і зберігає за межами об'єкта його внутрішній стан так, щоб пізніше можна було відновити об'єкт в такому ж стані. Якщо клієнту в подальшому потрібно "відкотити" стан вихідного об'єкта, він передає Memento назад у вихідний об'єкт для його відновлення.
Патерн оперує трьома об'єктами:
- Господар стану (Originator);
- Зберігач (Memento) -- зберігає стан об’єкту-господаря Originator;
- Доглядач (Caretaker) - Відповідає за збереження об'єкта-зберігача Memento.
Для реалізації необхідно:
- Структура Originator у якї є якийсь мінливі стан, а також вона може створювати і приймати Зберігачів (Memento) свого стану;
- Структура Memento, реалізує сховище для стану Originator;
- Структура Caretaker, отримує і зберігає об'єкт-зберігач (Memento), поки він не знадобиться господареві(Originator).