Рекомендуем, 2024

Выбор редакции

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

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

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

Сравнительная таблица

Основа для сравненияагрегированиеСостав
основнойВ совокупности проявляются отношения, в которых ребенок может существовать независимо от родителя.В композиции не может существовать независимо от родителя.
Тип отношений"имеет""часть"
Тип ассоциацииСлабая ассоциацияСильная ассоциация
Символ дизайна UMLПредставлен полым алмазом рядом с классом сборки.Представлен сплошным бриллиантом рядом с классом сборки.
функцияУдаление сборки не влияет на ее части.Если владелец объекта класса будет удален, это может существенно повлиять на содержащий объект класса.

Определение агрегации

Агрегация может быть определена как отношение с классом сборки к составному классу. Связь между двумя объектами может быть представлена ​​путем рисования отрезка линии в UML (Unified Modeling Language).

Агрегация также используется для указания множества объектов, таких как один-к-одному, один-ко-многим и многие-ко-многим. Когда объект класса X связан с одним объектом класса Y, в этом случае существует отношение один-к-одному. Точно так же, если один объект класса связан с несколькими объектами класса, то это отношение называется «один ко многим».

Например, автомобиль состоит из колес, двигателя, коробки передач, рулевого управления, основного корпуса и т. Д. Автомобиль представляет собой сборку, а остальные части являются ее составными частями. Автомобиль с колесами - это одно скопление, автомобиль с двигателями - это другое скопление, и так далее. Каждое отдельное соединение определено так, чтобы указывать множественность каждой составной части в сборке, в результате количество объектов также может быть изображено.

Агрегация - это тип ассоциации, который описывает тип отношения «имеет» между объектами. Например, автомобиль «имеет» коробку передач, а автомобиль «имеет» двигатель . Например, для отношений «один ко многим» автомобиль «имеет» много колес .

Определение состава

Композиция также является типом ассоциации, но более ограничительной формой. Он представлен в UML крошечным сплошным ромбом рядом с классом сборки.

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

Таким образом, композиция означает владение составной частью целого. Это в конечном итоге увеличит удобство программирования. Композиция может инициировать удаление составляющего объекта путем удаления объекта сборки.

Композиция описывает «часть» отношений. Например, лист является частью дерева, если дерево уничтожено, то листья должны быть уничтожены.

Ключевые различия между агрегацией и составом

  1. Агрегация указывает на связь, в которой дочерние и родительские объекты могут существовать независимо. В отличие от этого, по составу дочерняя сущность зависит от родителя.
  2. В агрегации существует отношение «имеет», тогда как в композиции существует отношение «часть» между объектами класса сборки и составляющих.
  3. Агрегация - это слабая ассоциация, в то время как композиция является сильной ассоциацией, потому что она имеет больше ограничений.
  4. В дизайне UML агрегация описывается пустотелым ромбом. Напротив, композиция изображена сплошным бриллиантом.

Заключение

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

Top