UML - ассоциативные или агрегационные отношения? - PullRequest
3 голосов
/ 22 мая 2011

Когда класс содержит тип другого класса в качестве атрибута, что это за связь - ассоциация или агрегация?

, например

класс Flight, содержащий тип класса City в качестве атрибута с названием Destination - это ассоциация или агрегация? Как называется их отношения в любом случае? Рейс - "прибывающий" - город?

Другой сценарий:

Класс FlightBooking, содержащий тип класса BusinessClass в качестве атрибута, который показывает, что это полетный класс бизнес-класса - это ассоциация или агрегация?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

Класс Flight, содержащий тип класса City в качестве атрибута с названием Destination - это ассоциация или агрегация?

Это зависит от того, какое поведение вы хотите получить в своемпрограмма, но в большинстве случаев это должна быть ассоциация.Когда вы удаляете объект Flight (в памяти, в вашей базе данных и т. Д.), Вы не хотите, чтобы данные города назначения тоже удалялись или нет?Как общее практическое правило: используйте агрегацию B в A всякий раз, когда вы хотите, чтобы время жизни A и B было одинаковым;используйте связь всякий раз, когда жизнь должна быть отделена.

0 голосов
/ 23 мая 2011

Подумайте о терминологии - ассоциация звучит гораздо более широко.Имеет смысл сказать, что для «класса Flight, содержащего тип класса City в качестве атрибута с именем Destination», - это ассоциация.

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