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

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

Таким чином, композиція означає володіння складовою частиною цілого. Це, в кінцевому рахунку, збільшить зручність для програмування. Композиція може ініціювати видалення складового об'єкта шляхом видалення об'єкта збірки.
Композиція описує “частину” відносин. Наприклад, лист є частиною дерева, якщо дерево руйнується, то листя повинні бути знищені.
Основні відмінності між агрегацією та складом
- Агрегація вказує на зв'язок, де дочірні та батьківські сутності можуть існувати незалежно. На відміну від композиції, дитяча сутність залежить від батьківського.
- У сукупності існує зв'язок «має», тоді як у складі існує «частина» взаємозв'язку між збіркою і складовими класовими об'єктами.
- Агрегація є слабкою асоціацією, тоді як композиція є сильною асоціацією, оскільки має більше обмежень.
- У UML-конструкції агрегація описується порожнистим алмазом. Навпаки, композиція зображена твердим алмазом.
Висновок
У сукупності складові частини мають незалежне існування і можуть бути спільно використані або перепризначені для агрегатів або його складання. З іншого боку, у складі складова частина належить саме до однієї збірки або агрегату. Крім того, частина створюється, коли утворюється агрегат, і частина руйнується, коли агрегат руйнується.