Главные различия между агрегацией и композицией в объектно-ориентированном программировании заключаются в степени тесноты связи между контейнером и его компонентами. 3
Агрегация — это связь между классами, когда объект одного класса содержит другой объект в качестве своей части. 1 При этом объект-часть может принадлежать только одному объекту-целому, а объект-целое продолжает существовать, даже если объект-часть удалён. 1
Композиция — это связь между классами, когда объект одного класса является частью объекта другого класса и не может существовать отдельно от него. 1 В случае композиции объект-целое полностью контролирует жизненный цикл объектов-частей, которые являются его составными компонентами и могут иметь доступ к его методам и свойствам. 1