Моделирование связанных объектов и их шаблонов - PullRequest
1 голос
/ 13 мая 2010

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

В этом приложении пользователь может добавить несколько элементов, которые могут быть пассивными или активными. Каждый конкретный элемент имеет разные атрибуты, которые должны быть установлены пользователем. Смотрите схему 1: diagram 1

Поскольку пользователь будет создавать много элементов, мы хотим, чтобы для каждого типа элемента были шаблоны, поэтому некоторые атрибуты заполняются автоматически. Смотрите диаграмму 2: diagram 2

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

Должен быть отдельный список для каждого подкласса Элемента. Поэтому, если вы хотите добавить нового PassiveElement-child, вам также нужно отредактировать класс, который содержит все эти отдельные списки.

Я не могу найти хороший способ решить эту проблему. Поскольку конкретные классы (т.е. PassiveElementA, ..., PassiveElementZ) имеют очень много различных атрибутов, многие известные мне шаблоны проектирования не работают.

Заранее спасибо за любые подсказки, и извините за мой плохой английский.

1 Ответ

1 голос
/ 14 мая 2010

Если я вас правильно понял, и под шаблоном вы подразумеваете объект, который имел бы сложную конструкцию, и поэтому у вас есть много готовых объектов, которые копируются по мере необходимости, вы можете рассмотреть использование шаблона проектирования Prototype. В противном случае, может быть, какая-то абстрактная фабрика или даже инъекция зависимостей. Это может помочь, если вы укажете причины, по которым ваш дизайн будет выглядеть так, как сейчас.

...