Шаблон для изменения параметров программы в графическом интерфейсе - PullRequest
0 голосов
/ 01 июля 2011

Я добавляю графический интерфейс в существующее приложение командной строки. Свойства, используемые приложением, содержатся в классе (ах), и я создаю диалог, который связывается с этими объектами параметров. Однако, если я хочу выйти из этого диалогового окна, я сбрасываю значения объектов опций, где я работаю с пробами.

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

Я могу (как-то) реализовать функцию отмены в каждом классе - есть ли для этого шаблон?

Я использую автономные элементы управления GUI для хранения значений и обновляю объекты параметров только после подтверждения диалога.

Какая лучшая практика?

1 Ответ

0 голосов
/ 01 июля 2011

Вам следует подумать о создании нового класса, который будет использоваться только GUI. GUI имеют свои потребности.

Обязательно позаботьтесь о многопоточных проблемах, если у вас есть несколько потоков, обращающихся к объекту опций.

Шаблоны проектирования, предназначенные для отмены функциональности, называются Command и Memento. Я думаю, что Memento лучше подойдет для этого случая.

Посмотрите на этот вопрос на SO: Шаблон проектирования для Undo Engine .

Следующие ссылки представляют интерес (и многие другие): http://www.coderanch.com/t/100676/patterns/Memento-Vs-Command-pattern http://www.developer.com/design/article.php/3720566/Working-With-Design-Patterns-Memento.htm http://www.colourcoding.net/blog/archive/2009/07/23/reversibility-patterns-memento-and-command.aspx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...