Memento (шаблон проектирования)
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Шаблон Memento (Хранитель) (также известный как Token, Лексема) – Шаблон проектирования
Позволяет не нарушая инкапсуляцию зафиксировать и сохранить внутреннее состояния объекта так, что бы позднее восстановить его в этом состоянии.
[править] Применение
Шаблон Хранитель используется, когда:
- необходимо сохранить снимок состояния объекта (или его части) для последующего восстановления
- прямой интерфейс получения состояния объекта раскрывает детали реализации и нарушает инкапсуляцию объекта
[править] Структура
- Originator - "Создатель"
- Caretaker - "Опекун"
- Memento - "Хранитель"
[править] Описание
Шаблон Хранитель используется двумя объектами: "Создателем" (originator) и "Опекуном" (caretaker). "Создатель" - это объект, у которого есть внутреннее состояние. Объект "Опекун" может производить некоторые действия с "Создателем", но при этом необходимо иметь возможность восстановить изменения. Для этого "Опекун" запрашивает у "Создателя" объект "Хранителя". Затем выполняет запланированное действие (или последовательность действий). Для выполнения отката "Создателя" к состоянию, которое предшествовало изменениям, "Опекун" возвращает объект "Хранителя" его "Создателю". "Хранитель" является непрозрачным (т.е. таким, который не может или не должен изменяться "Опекуном").