Помогите с быстрой путаницей UML

Я хочу знать, что было бы, если бы у меня был билет, содержащий один тип билета, но тип билета может быть частью многих билетов.

Будет ли это отношение агрегацией, где открытый ромб находится в классе Ticket, или это ассоциация, где стрелка указывает на TicketType?


person Sandeep Bansal    schedule 22.04.2011    source источник


Ответы (1)


Моей первой мыслью было: «Кому какое дело?» Вы пытаетесь выразить связь между двумя объектами для себя или других разработчиков. Вы даже не можете сформулировать разницу; каковы шансы, что другие смогут это сделать?

Ассоциация с открытым ромбом говорит о том, что Ticket принадлежит TicketType, но тип не удаляется, если Ticket исчезает.

Я не уверен, какую дополнительную информацию это дает помимо простой стрелки для ассоциации.

Я думаю, что важно не слишком зацикливаться на этих вещах. Не слишком увлекайтесь UML.

person duffymo    schedule 22.04.2011
comment
Хорошо, спасибо, это имеет смысл, что если билет удален, типы билетов все еще существуют, что и должно быть. - person Sandeep Bansal; 22.04.2011
comment
+1 @duffymo. Ассоциация агрегации UML вызывает больше путаницы, чем пользы. Важными вопросами являются кардинальность (должен ли быть хотя бы один? Может ли быть более одного?) и поведение при удалении. Я всегда советую сначала ответить на эти вопросы и придерживаться простой бинарной ассоциации. Агрегация имеет только одно полезное свойство, и это происходит только в рекурсивных агрегатах. - person sfinnie; 23.04.2011
comment
Спасибо за совет, сфинни. Я думаю, что мой ответ вполне адекватен в его нынешнем виде. Возможно, вы запутались в агрегации; Я не. Вы, конечно, можете предложить свой собственный. - person duffymo; 23.04.2011
comment
Мое намерение состояло в том, чтобы согласиться с вами, а не дать вам совет. Отсюда +1. Совет - если он был - был для ОП. А именно, не зацикливайтесь на агрегации. Сконцентрируйтесь на двух важных вопросах (количество элементов + поведение при удалении). - person sfinnie; 23.04.2011