В чём разница между агрегацией и композицией? Вроде одно и то же, но вроде бы и нет... В чём разница между этими понятиями?
По сути композиция это более строгое понятие агрегации.
Агрегация - это когда у тебя класс-основа и классы-элементы не зависят друг от друга, и когда ты убираешь один из них - сама структура при этом не распадается, изменения касаются только того, к чему применены.
Пример: студенты и группа. Если студента выгоняют из группы (или он переводится куда-то в другое место) - вся остальная группа остаётся без изменений.
Композиция - это одно и то же что и агрегация, только элементы-классы с классом-основой имеют очень прочную связь. Если исчезает что-то одно - распадается вся структура, изменения затрагивают всё.
Пример: человек и его жизненноважные органы. Если убрать класс сердца или, например, лёгких - человек умрёт. То же самое и тут. При удалении какого-то элемента удаляются все остальные элементы и вся структура в целом.