2014-01-11 2 views
2

У меня есть проблема с тем, что я хочу представить, используя диаграмму классов UML. У меня есть класс A, который имеет свое имя и коллекцию (0 .. *) элементов B. Класс B, однако, является абстрактным, и поэтому набор элементов в A может быть B1 или B2 (специализации Б). Я хотел бы прояснить тот факт, что коллекция должна полностью представить все B1 или B2, что не позволяет смешивать разные элементы, но я понятия не имею, как представить это на UML. Ваш совет определенно поможет.Укажите тип коллекции в UML-диаграмме Класс

+---+ 
| A | 
+---+ 
    | 
    |0..* 
+---+ +----+ 
| B |<---| B1 | 
+---+ +----+ 
^
    | 
+----+ 
| B2 | 
+----+ 

ответ

0

Сделайте две настоящие коллекции на основе абстрактных (или и интерфейсов). Сделайте ссылку от A до этой абстрактной коллекции. Поскольку это абстрактно, для реализации вам нужно взять один из этих мгновенных. Это еще одно использование абстрактного класса.

enter image description here

Я боюсь, я не могу управлять им так красиво старомодных буквенно графики.

Кроме того, я думаю, было бы лучше добавить пояснительную записку в любом случае. Ибо это было бы трудно понять.

Редактировать: Я хочу оценить ваше желание реализовать концепцию на уровне класса, а не if-then-else. Таким образом, мы можем ГАРАНТИРОВАТЬ, что в коллекции не будет типов микширования.

0

Коллекции в UML определяются неявно. Если атрибут или конец ассоциации имеют множественность, установленную более чем одной, это коллекция. Типы элементов в коллекции - это типы, назначенные контурам атрибутов или ассоциаций. Типы коллекций определяются паранормами isOrdered, isUnique of musltiplicity. он отображается ключевыми словами, близкими к атрибуту (конец ассоциации).