Композиция и агрегация - отношения "часть-целое" между объектами.
Композиция: Строгое отношение, где часть не может существовать без целого. Удаление целого также удаляет части. Жизненный цикл зависимой части полностью определяется целым. Пример: Комнаты (части) в Доме (целом). Без Дома комнаты не существуют.
java
Агрегация: Более слабое отношение, где часть может существовать независимо от целого. Удаление целого не обязательно приводит к удалению частей. Части могут быть связаны с несколькими различными целыми объектами. Пример: Автомобиль (целое) и Колеса (части). Колеса могут существовать отдельно от конкретного автомобиля и использоваться на другом.
java
Основные отличия в таблице:
| Критерий | Композиция | Агрегация |
|---|---|---|
| Зависимость | Строгая: Часть зависит от целого | Слабая: Часть может существовать независимо |
| Жизненный цикл | Часть управляется целым | Часть не обязательно управляется целым |
| Удаление целого | Приводит к удалению частей | Не обязательно приводит к удалению частей |
| Множественные связи | Часть принадлежит только одному целому | Часть может быть связана с несколькими целыми |
| Диаграмма UML | Заполненный ромб на стороне целого | Пустой ромб на стороне целого |