Агрегація проти композиції в UML: ключові відмінності

Зміст:

Anonim

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

Композиція - це особливий випадок агрегації, який допомагає визначити цілісні стосунки між класом композиції та підлеглим (частинним) класом.

Що таке агрегація?

Агрегація - це особливий випадок асоціації, коли об'єкт має "інший" об'єкт, який можна об'єднати між собою. Напрямок між ними допомагає вказати, який об’єкт містить інший об’єкт. Агрегація також відома як відносини "має". Це підтип відносин асоціації в UML.

КЛЮЧОВІ ВІДМІННОСТІ

  • Агрегація - це один тип асоціації між двома об’єктами, що описують взаємозв'язок "є", тоді як Композиція - це специфічний тип агрегації, який передбачає право власності.
  • Агрегація вказується за допомогою прямої лінії з порожнім наконечником стрілки на одному кінці. З іншого боку, композиція вказується за допомогою прямої лінії із заповненим наконечником стрілки на будь-якому з кінців.
  • У взаємозв'язку агрегування об'єкти, пов'язані між собою, можуть залишатися в межах системи один без одного. Але в композиційних відносинах об’єкти, пов’язані між собою, не можуть залишатися в зоні дії один без одного.
  • В Агрегації пов'язані об'єкти не залежать від іншого об'єкта, тоді як за складом об'єкти сильно залежать один від одного.
  • В агрегації видалення одного елемента не впливає на інший пов'язаний елемент. Навпаки, у композиції видалення одного елемента впливає на інший асоційований елемент.
  • Агрегація позначається заповненим алмазом, тоді як композиція - порожнім алмазом.

Ключові статистичні дані

Агрегація Склад
Власник Немає власника Одинокий власник
Час життя У них все життя. Термін служби власника.
Дитячий об'єкт Усі дочірні об’єкти незалежні. Дочірні об’єкти належать одному з батьків.

Приклад композиції

Папка може містити багато файлів, тоді як кожен Файл має рівно одного батька папки. Якщо папку видалено, видаляються також усі файли, що містяться. У складеному агрегуванні об’єкт може бути частиною лише одного складеного одночасно.

Приклад агрегації

Наприклад, ваш автомобіль складається з коліс, двигуна, коробки передач, рульового управління та основного корпусу тощо. Це збірка, а інші частини є її складовими.

Тут машина до колеса - це одна агрегація, машина до двигуна - це інша агрегація, машина до коробки передач - інша тощо.

Цей тип сполучення допомагає визначити множинність складової частини в складі як її результат. Кількість предметів також можна зобразити.

Автомобілю для правильної роботи потрібне колесо. Однак ми не можемо сказати те саме з автомобілем. Та сама логіка може застосовуватися до велосипеда, велосипеда або будь-якого іншого транспортного засобу, але не до конкретного автомобіля.

Тут об’єкт колеса має значення навіть без об’єкта автомобіля. Він відомий як агрегаційні відносини.

Різниця між агрегацією та складом

Ось основна різниця між агрегацією та складом:

Агрегація Склад
Агрегація - це один із типів асоціацій між двома об’єктами, який також описує взаємозв’язок «мати». Склад - це специфічний тип агрегації, який передбачає право власності.
Агрегація вказується за допомогою прямої лінії з порожнім наконечником стрілки на одному кінці. Композиція вказується за допомогою прямої лінії із заповненим наконечником стрілки на будь-якому з кінців.
Агрегація є частиною відносин асоціації. Композиція є частиною відносин асоціації.
Агрегація розглядається як слабкий тип асоціації. Композиція розглядається як сильний тип асоціації.
У взаємозв'язку агрегування об'єкти, пов'язані між собою, можуть залишатися в межах системи один без одного. У композиційних відносинах об’єкти, пов’язані між собою, не можуть залишатися в області дії один без одного.
В Агрегації пов'язані об'єкти не залежать від іншого об'єкта. За складом предмети сильно залежать один від одного.
В агрегації видалення одного елемента не впливає на інший пов'язаний елемент. У композиції видалення одного елемента впливає на інший пов'язаний елемент.
Приклад: Автомобіль потребує колеса, але він не завжди вимагає одного колеса. Автомобіль може адекватно функціонувати і з іншим колесом. Приклад: Файл розміщується всередині папки. Якщо хтось видаляє папку, тоді також видаляється файл, пов’язаний із цією папкою.
В Агрегації батьківські відносини з дочірньою сутністю. За складом батьківський об’єкт володіє дочірнім об’єктом.
Він позначається заповненим алмазом Він позначається порожнім діамантом
У дитини немає життя. Дитина може мати все життя.
Він представлений порожнистим діамантом поруч із класом складання. Він представлений цільним діамантом поруч із класом складання.
Видалення збірки ніколи не впливає на її частини. У разі володіння класом об’єкт видаляється. Це також впливає на об'єкт класу, що містить.