Почему у объекта Memento есть функция setState()?
Это единственное, что я не понимаю в этом паттерне. Почему у объекта Memento просто нет конструктора и метода getState()? Когда имеет смысл устанавливать состояние Memento после его создания? Разве это не похоже на изменение прошлого?
1 ответ
Вы не должны иметь метод setState в классе Memento. Это не имеет никакого смысла. Memento - это просто знак, который Хранитель хранит, чтобы восстановить состояние Originator. Если Смотритель хочет новый Memento с новой информацией о состоянии, он должен получить его от Originator.