Sobes.tech
Junior — Middle

Ar galite paaiškinti, ką reiškia terminas 'agregacija' objektų orientuoto programavimo kontekste?

sobes.tech AI

Atsakymas iš AI

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

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

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

Пример на 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)
// Водитель существует независимо от автомобиля