Ответ
Агрегация и композиция — это виды ассоциации между объектами, но с разной степенью зависимости.
Агрегация — это слабая связь, где объект может существовать независимо от контейнера. Например, Student может быть частью University, но при удалении университета студент останется.
class University(val students: List<Student>)
Композиция — это сильная связь, где объект не может существовать без контейнера. Например, Engine не существует без Car. Удаление Car влечёт удаление Engine.
class Car {
private val engine = Engine()
}
Композиция подразумевает полное владение, агрегация — частичное.