Как создать экземпляры сувенира по умолчанию в Memento Pattern? - PullRequest
0 голосов
/ 16 сентября 2010

Я использую Шаблон Memento для сохранения свойств формы с несколькими экземплярами, где пользователь создает n форм внутри родительской формы. Цель памятки состоит в том, чтобы восстановить такое же количество форм и их настройки, когда пользователь закрывает, а затем повторно открывает родительскую форму. Сохранение памятных форм выполняется с помощью кнопки «Сохранить» в родительской форме. Итак, у меня есть две проблемы ..

  1. Мне нужен набор свойств по умолчанию для использования при открытии новой формы, так где же мне установить эти значения по умолчанию .. В пустом конструкторе по умолчанию для сувенира или где-то (где?) В Originator?
  2. Далее я хочу, чтобы пользователь мог изменять значения по умолчанию, следовательно, сделать свой собственный сувенир по умолчанию. Как / где это сохраняется, и как мне определить, был ли установлен такой сувенир по умолчанию или нет?

Конечно, я, вероятно, мог бы как-то настроить это, чтобы работать, но я хотел бы знать, есть ли общее описание шаблона, которое решает это, так что у меня есть твердое руководство для подражания.

ура!

Ответы [ 3 ]

1 голос
/ 17 сентября 2010

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

Как предлагает Марк Сидаде выше, есть и другие более подходящие шаблоны для использования в вашей проблеме.

1 голос
/ 16 сентября 2010

Пустой конструктор по умолчанию класса memento должен быть в порядке, или у вас может быть фабричный метод CreateDefault(), например, если вы хотите оставить конструктор по умолчанию для инициализации blank memento, а непредустановленная конфигурация по умолчанию.

Существует несколько различных шаблонов создания , которые можно использовать для указания пользовательской настройки по умолчанию, включая prototype и абстрактная фабрика .

0 голосов
/ 03 мая 2011

Исходя из вашего вопроса и комментариев, сделанных в ответе Берли Беара, у меня сложилось впечатление, что достаточно простой реализации, и здесь не нужно «навязывать» шаблон.

...