Что такое композиция?
Композиция - это особый случай агрегации, который помогает вам указать отношение «целая часть» между классом композиции и подчиненным (частичным) классом.
Что такое агрегирование?
Агрегация - это особый случай ассоциации, когда у объекта есть другой объект, который вы можете агрегировать между собой. Направление между ними помогает указать, какой объект содержит другой объект. Агрегация также известна как отношения «есть». Это подтип ассоциативных отношений в UML.
ОСНОВНЫЕ ОТЛИЧИЯ
- Агрегация - это один из типов ассоциации между двумя объектами, описывающий отношения «иметь», в то время как композиция - это особый тип агрегации, который подразумевает владение.
- Агрегация обозначается прямой линией с пустой стрелкой на одном конце. С другой стороны, композиция обозначается прямой линией с закрашенной стрелкой на любом из концов.
- В отношении агрегирования объекты, которые связаны друг с другом, могут оставаться в области действия системы друг без друга. Но в отношении композиции объекты, которые связаны друг с другом, не могут оставаться в области друг без друга.
- В агрегировании связанные объекты не зависят от другого объекта, тогда как в композиции объекты сильно зависят друг от друга.
- В агрегировании удаление одного элемента не влияет на другой связанный элемент. Напротив, в композиции удаление одного элемента влияет на другой связанный элемент.
- Агрегация обозначается закрашенным ромбом, а композиция обозначается пустым ромбом.
Ключевая статистика
Агрегирование | Сочинение | |
Владелец | Нет владельца | Одинокий собственник |
Продолжительность жизни | Имеют свою жизнь. | Срок службы владельца. |
Дочерний объект | Все дочерние объекты независимы. | Дочерние объекты принадлежат единственному родителю. |
Пример композиции
Папка может содержать много файлов, в то время как у каждого файла есть только одна родительская папка. Если папка удаляется, все содержащиеся в ней файлы также удаляются. В составной агрегации объект может быть частью только одного составного объекта одновременно.
Пример агрегирования
Например, ваша машина состоит из колес, двигателя, коробки передач, рулевого управления, основного корпуса и т. Д. Это сборка, а другие части являются ее составными частями.
Здесь автомобиль к колесу - это одно агрегирование, автомобиль к двигателю - другое агрегирование, автомобиль к коробке передач - другое и так далее.
Этот тип сопряжения помогает определить количество составляющих деталей в сборке как результат. Также может быть изображено количество объектов.
Для правильной работы автомобилю необходимо колесо. Однако мы не можем сказать то же самое об автомобиле. Та же логика может быть применена к велосипеду, велосипеду или любому другому транспортному средству, но не к конкретному автомобилю.
Здесь объект «колесо» имеет смысл даже без объекта «автомобиль». Это известно как отношение агрегирования.
Разница между агрегированием и композицией
Вот основное различие между агрегированием и композицией:
Агрегирование | Сочинение |
Агрегация - это один из типов ассоциации между двумя объектами, который также описывает отношение «иметь». | Состав - это особый тип агрегирования, подразумевающий владение. |
Агрегация обозначается прямой линией с пустой стрелкой на одном конце. | Композиция обозначается прямой линией с закрашенной стрелкой на любом из концов. |
Агрегация - это часть ассоциативных отношений. | Композиция является частью ассоциативных отношений. |
Агрегация рассматривается как слабый тип ассоциации. | Композиция считается сильным типом ассоциации. |
В отношении агрегирования объекты, которые связаны друг с другом, могут оставаться в области действия системы друг без друга. | В отношении композиции объекты, которые связаны друг с другом, не могут оставаться в области друг без друга. |
В агрегировании связанные объекты не зависят от другого объекта. | По составу предметы сильно зависят друг от друга. |
В агрегировании удаление одного элемента не влияет на другой связанный элемент. | В композиции удаление одного элемента влияет на другой связанный элемент. |
Пример: автомобилю нужно колесо, но не всегда одно и то же колесо. Автомобиль может нормально работать и с другим колесом. | Пример: файл помещается в папку. При удалении папки удаляется и файл, связанный с этой папкой. |
В агрегации - родительские отношения с дочерней сущностью. | В составе родительская сущность владеет дочерней сущностью. |
Обозначается закрашенным ромбом. | Обозначается пустым ромбом |
У ребенка нет жизни. | У ребенка может быть вся жизнь. |
Он представлен полым ромбом рядом с классом сборки. | Он обозначен сплошным ромбом рядом с классом сборки. |
Удаление сборки никогда не влияет на ее детали. | В случае владения классом объект удаляется. Это также влияет на содержащий объект класса. |