562 подписчика
Паттерн Хранитель: Как сохранить и восстановить состояние объекта?

Всем привет.
Давайте кратко познакомимся с паттерном Хранитель. Этот паттерн, хотя и звучит немного сложно, в действительности предоставляет нам простой способ сохранить и восстановить состояние объекта.

Для начала представьте, что у вас есть объект, с которым вы работаете и вы хотите сохранить его текущее состояние, чтобы в будущем можно было вернуться к этому состоянию. Вот где на помощь приходит паттерн Хранитель.

Паттерн Хранитель основан на разделении ответственности между объектами. Вместо того, чтобы хранить всю информацию о состоянии объекта в самом объекте, мы создаем дополнительный объект, называемый хранителем, который будет отвечать за сохранение и восстановление состояния.

Давайте рассмотрим пример простой записной книжки. У нас есть объект "Запись", у которого есть название и текст. С помощью паттерна Хранитель мы можем сохранить текущее состояние записи, создавая хранитель, который будет хранить эту информацию. При необходимости мы сможем восстановить запись в исходное состояние.

Плюсы использования паттерна Хранитель:
- Позволяет сохранять состояние объекта и восстанавливать его в нужный момент.
- Разделяет ответственность между объектом и хранителем, что помогает улучшить структуру кода.
- Предоставляет гибкость в управлении состоянием объекта.

Участники процесса:
Memento («хранитель») – хранитель, сохраняет состояние объекта Originator;
Originator («создатель») – создает экземпляр объекта хранителя. Имеет полный доступ к Memento;
Caretaker («опекун») – производит сохранения состояний.

Для большего понимания давайте представим пример из реальной жизни. Представьте, что ваше состояние здоровья - это объект и вы хотите сохранить свое текущее состояние на случай, если в будущем заболеете. Вы создаете запись о своем состоянии, которую можно восстановить, когда это потребуется.
10 месяцев назад