У меня проблемы с корректным моделированием связанных объектов, которые могут использовать шаблоны. Это не домашнее задание, а часть небольшого проекта в университете.
В этом приложении пользователь может добавить несколько элементов, которые могут быть пассивными или активными. Каждый конкретный элемент имеет разные атрибуты, которые должны быть установлены пользователем. Смотрите схему 1:
Поскольку пользователь будет создавать много элементов, мы хотим, чтобы для каждого типа элемента были шаблоны, поэтому некоторые атрибуты заполняются автоматически. Смотрите диаграмму 2:
На мой взгляд, это плохой дизайн. Например, чтобы получить все возможные шаблоны для объекта PassiveElementA, должен быть где-то список / набор, содержащий только объекты PassiveElementATemplate.
Должен быть отдельный список для каждого подкласса Элемента. Поэтому, если вы хотите добавить нового PassiveElement-child, вам также нужно отредактировать класс, который содержит все эти отдельные списки.
Я не могу найти хороший способ решить эту проблему. Поскольку конкретные классы (т.е. PassiveElementA, ..., PassiveElementZ) имеют очень много различных атрибутов, многие известные мне шаблоны проектирования не работают.
Заранее спасибо за любые подсказки, и извините за мой плохой английский.