Почему у объекта Memento есть функция setState()?

Это единственное, что я не понимаю в этом паттерне. Почему у объекта Memento просто нет конструктора и метода getState()? Когда имеет смысл устанавливать состояние Memento после его создания? Разве это не похоже на изменение прошлого?

1 ответ

Вы не должны иметь метод setState в классе Memento. Это не имеет никакого смысла. Memento - это просто знак, который Хранитель хранит, чтобы восстановить состояние Originator. Если Смотритель хочет новый Memento с новой информацией о состоянии, он должен получить его от Originator.

Вот хороший пример.

Другие вопросы по тегам