Разница между агрегацией и композицией

Оглавление:

Разница между агрегацией и композицией
Разница между агрегацией и композицией

Видео: Разница между агрегацией и композицией

Видео: Разница между агрегацией и композицией
Видео: Что такое агрегация и композиция. Отношения между классами и объектами. ООП. C++ Для начинающих #97 2024, Июль
Anonim

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

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

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

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

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

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

Разница между агрегацией и композицией
Разница между агрегацией и композицией

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

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

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

Композиция - это более конкретная форма агрегации. Он описывает право собственности. Это можно объяснить на примере ниже.

Ключевая разница между агрегацией и композицией
Ключевая разница между агрегацией и композицией

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

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

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

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

В чем разница между агрегацией и композицией?

Агрегация и композиция

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

Сводка – Агрегация и композиция

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

Загрузить PDF-версию агрегации и композиции

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

Рекомендуемые: