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