Ассоциация между тремя классами

У меня есть следующая ситуация/модель:

введите здесь описание изображения

У меня есть класс Player с цветом и рисунком. Довольно просто. Но теперь я хочу привязать Рисунок к Цвету:

введите здесь описание изображения

Теперь я ищу способ заставить рисунок иметь тот же цвет, что и игрок. Возможно, я упускаю что-то очень очевидное, но я понятия не имею, как это сделать. Есть ли какое-нибудь выражение OCL?

Я использую MagicDraw.


person Thomas Uhrig    schedule 16.07.2012    source источник


Ответы (3)


"Фигура должна иметь тот же цвет, что и игрок"

Обычно это обрабатывается не как прямая ассоциация, а косвенно, классом Player и его ассоциациями.

Допустимо иметь свойство «Цвет» в «Рисунке» и добавлять ограничение, которое моделируется как O.C.L. комментарий / примечание.

person umlcat    schedule 16.07.2012

Вы можете использовать тройную ассоциацию. UML поддерживает N-арные ассоциации. См. здесь: http://www.uml-diagrams.org/association.html

Кроме того, вот видео на YouTube о рисовании троичных ассоциаций в MagicDraw: http://www.youtube.com/watch?v=eOIQ4hOnneU

person Michalis Famelis    schedule 16.07.2012

Пусть Color будет ассоциативным классом между другими, чтобы для каждых двух их экземпляров был один экземпляр цвета, что вам и нужно.

person user2395936    schedule 18.05.2013