Рекомендуємо, 2024

Вибір Редакції

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

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

Об'єктно-орієнтоване програмування - це загальна парадигма, яка використовується в розробці програмного забезпечення. Об'єкт є екземпляром класу, який створюється класами. Об'єкти співпрацюють один з одним через посилання. Посилання є фізичним і концептуальним зв'язком між об'єктами. Колекція посилань, що мають подібну структуру і семантику, описується як асоціація .

Діаграма порівняння

Основа для порівнянняАгрегаціяКомпозиція
ОсновнийУ сукупності вони демонструють зв'язок, де дитина може існувати незалежно від батька.У складі не може існувати незалежно від батька.
Тип відносин"має""частина"
Тип асоціаціїСлабка асоціаціяСильна асоціація
Символ дизайну UMLПредставлений порожнистим діамантом поруч зі складанням класу.Представлений твердим діамантом поруч зі складанням класу.
ФункціяВидалення збірки не впливає на його частини.Якщо об'єкт власного класу видалено, він може істотно вплинути на вміщує об'єкт класу.

Визначення агрегації

Агрегація може бути визначена як відношення з класом складання до складового класу. Відносини між двома об'єктами можна представити, малюючи сегмент лінії в UML (Unified Modeling Language).

Агрегація також використовується для визначення множини об'єктів, таких як один-до-одного, один-до-багатьом і багато-до-багатьох. Коли об'єкт класу X асоціюється з єдиним об'єктом класу Y, у цьому випадку існують взаємини один-до-одного. Аналогічно, якщо один об'єкт класу асоціюється з кількома об'єктами класу, то цей зв'язок називається "один-до-багатьох".

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

Агрегація - це тип асоціації, який описує тип відносин «має» між об'єктами. Наприклад, автомобіль «має» коробку передач, а автомобіль «має» двигун . Для відносин один-до-одного, прикладом є автомобіль, який має багато коліс .

Визначення складу

Композиція також є типом асоціації, але більш обмежувальної форми. В UML вона представлена ​​крихітним твердим алмазом, що примикає до класу збирання.

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

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

Композиція описує “частину” відносин. Наприклад, лист є частиною дерева, якщо дерево руйнується, то листя повинні бути знищені.

Основні відмінності між агрегацією та складом

  1. Агрегація вказує на зв'язок, де дочірні та батьківські сутності можуть існувати незалежно. На відміну від композиції, дитяча сутність залежить від батьківського.
  2. У сукупності існує зв'язок «має», тоді як у складі існує «частина» взаємозв'язку між збіркою і складовими класовими об'єктами.
  3. Агрегація є слабкою асоціацією, тоді як композиція є сильною асоціацією, оскільки має більше обмежень.
  4. У UML-конструкції агрегація описується порожнистим алмазом. Навпаки, композиція зображена твердим алмазом.

Висновок

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

Top