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

В чем разница между составом и агрегацией? Кто-нибудь может дать мне образец этого OOAD?

4 ответа

Решение

Нашел здесь

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

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

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

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

Мозг является частью ученика. Если ученик уничтожен, то и мозг тоже. Это композиция.

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

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

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

Другие вопросы по тегам