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

Ключевая разница - агрегация против состава
 

Объектно-ориентированное программирование (ООП) является распространенной парадигмой в разработке программного обеспечения. Объект является экземпляром класса. Невозможно создавать объекты сразу. Там должен быть план или описание для создания объекта. Этот план известен как класс. Класс содержит свойства и методы. Объекты создаются с использованием классов. Класс и объект похожи на план и дом в реальном мире. Невозможно построить дом без правильного плана. Аналогично, класс используется для создания объекта. Объект взаимодействует с другими объектами. Ссылка с представляет отношение двух или более объектов называется «ассоциацией». Агрегация и состав являются типами ассоциаций. Они описывают отношения между классами. В этой статье обсуждается разница между агрегацией и составом. ключевое отличие между агрегацией и составом является то, что агрегация - это ассоциация между двумя объектами, которая описывает отношение «имеет», а композиция - более специфический тип агрегации, который подразумевает владение.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое агрегация
3. Что такое композиция
4. Сходства между агрегацией и составом
5. Сравнение бок о бок - агрегация и состав в табличной форме
6. Резюме

Что такое агрегация?

Связь между двумя объектами показана путем рисования линии на языке унифицированного моделирования (UML). Ссылка является ассоциацией. UML помогает получить визуальное представление о системе. Это отличается от обычных языков программирования. Ассоциация также определяет множественность объектов. Они один к одному, один ко многим и многие ко многим. Когда один объект класса A связан с единственным объектом класса B, это отношение один-к-одному. Примером является автор, пишущий книгу. В этом примере один автор пишет книгу.

Когда один объект класса A связан со многими объектами класса B, это отношение один ко многим. Например, отдел может иметь много сотрудников. Когда объект класса A связан со многими объектами класса B, а объект класса B связан со многими объектами класса A, это ассоциация «многие ко многим». Например, сотрудник может работать над несколькими проектами, а проект может иметь несколько сотрудников..

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

Рисунок 01: Агрегация

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

Что такое композиция?

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

Рисунок 02: Композиция

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

Каковы сходства между агрегацией и составом?

  • Оба используются в объектно-ориентированном программировании.
  • Оба используются в Унифицированном Языке Моделирования (UML), чтобы получить визуальное понимание системы.

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

Агрегация против состава

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

Резюме - Агрегация против состава 

Объектно-ориентированное программирование является основной парадигмой в разработке программного обеспечения. В ООП система моделируется с использованием объектов. Эти объекты не существуют в изоляции. Объекты взаимодействуют с другими объектами. Отношения между объектами известны как ассоциация. Агрегация и состав являются типами ассоциации. Разница между агрегацией и композицией заключается в том, что агрегация представляет собой ассоциацию между двумя объектами, которая описывает отношение «имеет», а композиция - более конкретный тип агрегации, который подразумевает владение. Агрегация и состав помогают понять поведение системы.

Скачать PDF-версию Агрегации против Композиции

Вы можете скачать PDF версию этой статьи и использовать ее в автономном режиме, как указано в примечании. Пожалуйста, загрузите PDF версию здесь. Различие между агрегацией и составом

Ссылка:

1. Использование агрегации и составления, Люди карьера, 22 мая 2015 года. Доступно здесь