В чем разница между составом и агрегацией?

В чем разница между композицией и агрегацией? может ли кто-нибудь дать мне образец этого OOAD?

Ответ 1

Найдено здесь

"Как агрегация, так и состав представляют собой специальные виды ассоциаций. Агрегация используется для представления собственности или отношения целого/части, а композиция используется для представления еще более сильной формы собственности. С составом мы получаем совпадающее время жизни части с целое. Составной объект несет исключительную ответственность за расположение его частей с точки зрения создания и разрушения.

Кроме того, кратность совокупного конца не может превышать одного; то есть он не разделен. Объект может быть частью только одного композита за раз. Если композит уничтожен, он должен либо уничтожить все его части, либо дать им ответственность за какой-либо другой объект. Составной объект может быть сконструирован с учетом того, что ни один другой объект не будет уничтожать его части.

Композиция может использоваться для моделирования агрегации по значениям, которая семантически эквивалентна атрибуту. Фактически, композиция изначально называлась агрегацией по значению в более раннем проекте UML, причем "нормальная" агрегация рассматривалась как агрегация по ссылке. Определения немного изменились, но общие идеи все еще применяются. Различие между агрегацией и составом в большей степени является концепцией дизайна и обычно не имеет значения при анализе ".  Джон Мур

Ответ 2

Рассмотрим ученика, студенческий мозг и школу, в которой студент посещает.

Мозг - это часть ученика. Если ученик разрушен, то и мозг. Это композиция.

У студента есть школа. Студент переживает разрушение школы, и наоборот. Это агрегация.

Ответ 3

Соответствующий ответ на ваш вопрос здесь: http://ootips.org/uml-hasa.html

Вкратце: как состав, так и агрегация являются ациклическими - отношения, состоящие из части и целого. Разница в том, что с составом все отвечает за создание (и удаление) его частей.