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

Оглавление:

Anonim

В языках программирования, проектах операционных систем и системах управления базами данных различные объекты и классы хранятся с ассоциацией между объектами. И агрегирование, и композиция используются для описания этой взаимосвязи между объектами для более эффективного хранения и извлечения наборов данных за счет уменьшения сложности времени и пространства.

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

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

Агрегация - это связь между двумя наборами данных, такими как классы или объекты, где задействованные объекты не имеют прямой зависимости друг от друга в плане их создания или функции. Таким образом, манипулирование одним объектом не меняет статуса другого объекта. Эта ассоциация позволяет вносить изменения без потерь.

Композиция - это особый тип агрегирования, который описывает отношения между двумя наборами данных, в которых задействованные объекты или классы напрямую зависят друг от друга при их создании, хранении, функциях и т. Д. Таким образом, любое изменение одного из наборов данных напрямую влияет на другой набор данных.

Таблица сравнения между агрегированием и составом

Параметры сравнения

Агрегирование

Состав

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

Что такое агрегирование?

Агрегация - это тип ассоциации или отношения между двумя наборами данных, такими как классы, объекты и т. Д. Связь предназначена для группировки наборов данных, которые имеют схожие черты.

В этом типе ассоциации объекты или классы не имеют прямого отношения. Наборы данных имеют отношение «Has-A».

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

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

Это позволяет уничтожить один из наборов данных при агрегировании, не беспокоясь о данных, хранящихся в другом наборе данных.

Из-за этого свойства отношения агрегирования оно в основном используется в тестовых средах, где данные должны постоянно изменяться. Из-за отношения «Has-A» между агрегированными объектами данные не уничтожаются в других наборах данных.

Для представления UML пустой символ ромба используется для указания отношения агрегирования.

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

Композиция - это тип связи между наборами данных, который в основном используется в системах управления базами данных и при разработке операционных систем. Наборы данных могут включать объекты, классы и т. Д.

Композиция создает более прямую связь между наборами данных, чем агрегирование. Таким образом, объекты и классы напрямую связаны друг с другом во время создания наборов данных.

Поскольку объекты и классы напрямую связаны, они зависят друг от друга при создании, хранении и любой операции или функции.

Отношения иногда представлены как отношения «родитель-потомок» или отношения «владелец», где один набор данных является владельцем другого набора данных.

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

Это необходимо учитывать при работе с такими наборами данных, как если бы один из наборов данных был уничтожен или удален, другой набор данных, связанный с этим набором данных, также будет уничтожен.

Но данные хранятся более безопасно при использовании отношения композиции между объектами или классами. Для UML-представления ассоциации типа Composition используется закрашенный ромб.

Основные различия между агрегированием и составом

Вывод

Наборы данных необходимы для более эффективного хранения данных, когда есть некоторое сходство между задействованными данными. Таким образом, при создании систем управления базами данных создаются различные типы ассоциаций наборов данных, чтобы отразить взаимосвязь между наборами данных.

И агрегирование, и композиция - это типы ассоциаций, которые отражают взаимосвязь между задействованными данными.

Агрегация не является прямой взаимосвязью, и данные, участвующие в этом типе ассоциации, не зависят друг от друга в их создании и функционировании.

Композиция - это прямой тип ассоциации, и связь между задействованными данными иногда представляется как представление «Родитель-Дочерний».

Таким образом, композиция является более сильной ассоциацией, чем агрегирование, но при работе с этим типом ассоциации необходимо учитывать зависимость наборов данных.

использованная литература

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