Что такое агрегация

«Что такое агрегация» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Агрегация — это отношение между объектами, когда один объект (контейнер) содержит другие объекты (компоненты), но они могут существовать независимо. Если контейнер удаляется, компоненты могут продолжать существовать.

Пример в 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, но двигатель может быть переиспользован в другом объекте.