Файлы импорта шаблонов дизайна изменяют поведение - PullRequest
0 голосов
/ 29 сентября 2011

Я разрабатываю приложение, в котором программа может выполнять ряд операций.Он основан на импортируемом XML-файле и установленном соединении с БД.Однако некоторые функции могут работать без импорта XML-файла, а некоторые могут работать только в том случае, если импортирован XML-файл или только если подключена БД.

Итак, мой вопрос: какой шаблон проектирования я должен использовать, чтобы смоделировать это?Я читал о паттерне состояния, в котором поведение объекта изменяется относительно текущего состояния.Это хороший способ сделать это?Например, у меня может быть несколько состояний: XML_FILE_IMPORTED_ONLY, DB_CONNECTED_ONLY, XML_IMPORTRED_AND_DB_CONNECTED, NOTHING_IMPORTED и на основе текущего состояния объекта будут доступны соответствующие функции?

Любая помощь будет высоко ценится.

С уважением,

Петар

1 Ответ

0 голосов
/ 29 сентября 2011

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

Машина импорта XML XML

Исходное состояние: Не импортировано

  1. Не импортируется.переходы: "импорт происходит" -> импортировано.
  2. импортировано.переходы: «разгрузка» -> не импортируется.

Машина состояния соединения с БД

Исходное состояние: Не подключено

  1. Не подключен.переходы: "соединение успешно" -> Подключено.
  2. Подключено.переходы: «отключить» -> не подключен.

Редактировать: конечные автоматы излишни для этой проблемы.Каждый из рассматриваемых конечных автоматов имеет два состояния с одним переходом в каждом направлении.Гораздо лучший способ представить эту ситуацию - использовать переменную boolean.

boolean dbConnected;
boolean xmlImported;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...