Ответ
Агрегация — это отношение между объектами, когда один объект (контейнер) содержит другие объекты (компоненты), но они могут существовать независимо. Если контейнер удаляется, компоненты могут продолжать существовать.
Пример в Kotlin:
class Engine(val type: String)
class Car(val model: String, val engine: Engine) {
fun start() {
println("$model with ${engine.type} engine started")
}
}
fun main() {
val engine = Engine("V8")
val car = Car("Tesla", engine)
car.start()
// Двигатель может существовать без машины
}
Здесь Car агрегирует Engine, но двигатель может быть переиспользован в другом объекте.