Я использую Составной шаблон для представления иерархической структуры данных:
- CompositeNodeA
- CompositeNodeB
....
Каждый Лист представляет определенную задачу. Сначала пользователю предоставляется список задач по умолчанию для конкретного сценария, затем пользователь проверяет / снимает отметку с определенных задач (например, используя элемент управления TreeView), и после принятия выбора данные даже полностью сохраняются в файле XML. Эти данные позже используются либо (1) механизмом, выполняющим проверенные задачи, либо (2) пользовательским интерфейсом для отображения списка выбранных задач.
В некоторых сценариях существуют определенные (сложные) задачи, которые требуют дополнительных «внутренних» задач в качестве предварительных условий для механизма создания сложной задачи. Однако я не хочу отображать эти «внутренние» задачи пользователю, но они все еще используются механизмом и записываются в файл XML.
Зная, что у меня может быть большое количество различных типов сценариев (каждый сценарий имеет свой собственный файл XML), у каждого из которых есть совершенно другой список задач / порядок расположения / выбор по умолчанию, а также различные "внутренние" задачи, основанные на определенных вариантах выбора. некоторые задачи, как я могу реализовать интерфейс между чтением / записью XML-файла и UI + Engine? Тот, который скрывает «внутренние» задачи от пользовательского интерфейса, но отслеживает их, записывая их в файл XML, и тот, который допускает различные настройки на основе типа сценария?