2015-12-21 5 views
4

Я создаю программное обеспечение, которое ссылается на DLL, содержащую ~ 10 классов, каждый из которых представляет сообщение. Каждое сообщение содержит поля, специфичные для этого типа сообщения. Каждые шесть месяцев обновляются каждый тип сообщения, и я ищу, чтобы сделать программное обеспечение достаточно гибким, чтобы плавно обрабатывать эти переходы. Я хотел бы иметь возможность выбирать версию и тип сообщения из выпадающего меню в графическом интерфейсе, который затем ссылался бы на данную версию этого типа сообщения. У меня есть копия текста Gang of Four, и я пытаюсь найти подходящее решение этой задачи. Любая помощь приветствуется.Дизайн шаблонов для управления версиями

ответ

4

Йон может посмотреть на Memento pattern. Это может помочь вам выложить из вашего клиента пользовательского интерфейса.

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

Последний вариант может быть текущей версией .dll. Memento может запрашиваться у исходного объекта, когда ему нужно проверить состояние исходного объекта. Клиент является «опекуном» Memento, но только исходный объект может хранить и извлекать информацию из Memento (Memento «непрозрачен» для клиента и всех других объектов). Если клиенту впоследствии необходимо «откат» состояния исходного объекта, он передает Memento обратно исходному объекту для восстановления. Это естественно с Command.

2

Вы можете использовать шаблон команды для части отката, как указано выше. Затем вы можете использовать POJO для сообщений. Так как функции POJO будут изменены, вы можете использовать шаблон Adapter или Decorator, чтобы внести изменения в POJO, или вы можете напрямую изменить класс POJO, или вы можете расширить классы POJO в новые классы POJO. И отдых вы можете следовать, как упоминалось @ekostadinov.

Смежные вопросы