Почему на некоторых иллюстрациях состав помечен как подмножество агрегации?

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

Изображение: https://algodaily.com/lessons/association-aggregation-composition-casting

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
74
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Нет, это не правда. Здесь нет ничего общего.

qwerty_so 07.02.2023 10:39

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

John Williams 07.02.2023 10:45

Я использовал термин обобщение, не так ли?

qwerty_so 07.02.2023 11:59
Ответ принят как подходящий

Потому что это историческое состояние искусства не соответствует UML 2.5. Агрегация как атрибут свойства объясняется на стр. 110 UML 2.5:

  • нет | Указывает, что свойство не имеет семантики агрегирования.
  • общий | Указывает, что свойство имеет общую семантику агрегирования. Точная семантика разделяемой агрегации зависит от области приложения и разработчика моделей.
  • композитный | Указывает, что Свойство объединено составно, т. е. составной объект несет ответственность за существование и хранение составных объектов (см. определение частей в 11.2.3).

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

Другие вопросы по теме