Описание
Паттерн Memento (Хранитель) — это поведенческий шаблон проектирования, который позволяет сохранять и восстанавливать внутреннее состояние объекта без нарушения инкапсуляции. Этот шаблон особенно полезен в ситуациях, когда необходимо отменить изменения или вернуться к предыдущему состоянию объекта.
Реализация в общем виде
Memento состоит из трех основных компонентов:
- Originator (Источник): объект, состояние которого нужно сохранить.
- Memento (Снимок): объект, содержащий информацию о состоянии Originator.
- Caretaker (Опекун): объект, отвечающий за сохранение и управление снимками состояния Originator.
Пример
На примере имитации работы биржи рассмотрим пример применения данного паттерна.
Создадим интерфей IMemento.
Реализуем интерфейс в классе ExchangeMemento.
Создадим класс Exchange представляющий нашу биржу.
Для хранения состояния создадим класс Memory.
Посмотрим применение.
Результат.