Junior — Middle
Pouvez-vous expliquer ce que signifie le terme 'agrégation' dans le contexte de la programmation orientée objet?
sobes.tech IA
Réponse de l'IA
Агрегация в объектно-ориентированном программировании — это тип отношения между объектами, при котором один объект содержит ссылку на другой, но при этом объекты могут существовать независимо друг от друга. Это слабая форма композиции.
Например, класс Автомобиль может иметь ссылку на объект Водитель. Водитель существует отдельно от автомобиля и может управлять разными автомобилями. Если автомобиль уничтожается, водитель продолжает существовать.
В отличие от композиции, где жизненный цикл части зависит от целого, при агрегации объекты связаны, но не зависят друг от друга полностью.
Пример на 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)
// Водитель существует независимо от автомобиля