Можете объяснить, что подразумевается под термином 'агрегация' в контексте объектно-ориентированного программирования?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Например, класс Автомобиль может иметь ссылку на объект Водитель. Водитель существует отдельно от автомобиля и может управлять разными автомобилями. Если автомобиль уничтожается, водитель продолжает существовать.

В отличие от композиции, где жизненный цикл части зависит от целого, при агрегации объекты связаны, но не зависят друг от друга полностью.

Пример на Swift:

class Driver {
    let name: String
    init(name: String) {
        self.name = name
    }
}

class Car {
    var driver: Driver? // агрегация
    init(driver: Driver?) {
        self.driver = driver
    }
}

let driver = Driver(name: "Иван")
let car = Car(driver: driver)
// Водитель существует независимо от автомобиля

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее