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

Оглавление:

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

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

Видео: Разница между агрегированием и составом
Видео: Отношения между классами и объектами 2024, Май
Anonim

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

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

СОДЕРЖАНИЕ

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-версию здесь. Разница между агрегированием и композицией

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