Паттерн Memento — это поведенческий паттерн, который используется для реализации функции отката путём захвата и восстановления предыдущего состояния объекта без раскрытия его внутренней структуры.
Паттерн включает три основных объекта:
Процесс выглядит так:
Распространённый вариант использования — управление онлайн-формами:
Исходное состояние: Форма заполнена данными пользователя
Memento создан: Снимок исходного состояния формы
Пользователь изменяет: Поля формы обновлены
Пользователь нажимает сброс: Memento восстанавливает форму в исходное состояние
Пользователь нажимает сохранить: Новый memento создан из текущего состояния
Паттерн особенно полезен, когда нужно сохранять историю состояний, скрывая детали реализации от клиентов.
Паттерн Memento позволяет Caretaker напрямую получать доступ и модифицировать внутренние переменные состояния Originator для реализации функции отката.
Новый — ещё не проверен сообществом
Вы