Что такое агрегация в контексте ООП

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

Ответ

Агрегация — это вид ассоциации в ООП, где один объект (контейнер) содержит ссылки на другие объекты (компоненты), но их жизненные циклы независимы. Уничтожение контейнера не влечёт автоматического удаления компонентов.

Пример в Kotlin:

class Engine { /* ... */ }

class Car(val engine: Engine) {
    // Car агрегирует Engine, но Engine может существовать без Car
}

Ключевые особенности:

  • Отношение "has-a" (у машины есть двигатель)
  • Компоненты могут принадлежать нескольким контейнерам
  • Компоненты создаются/удаляются независимо