Sobes.tech
Junior — Middle
71

Можете объяснить концепцию агрегации в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

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

Пример: класс Автомобиль агрегирует объекты Колесо. Колеса могут существовать отдельно от автомобиля (например, быть заменены или использоваться в другом автомобиле).

class Wheel:
    def __init__(self, size):
        self.size = size

class Car:
    def __init__(self, wheels):
        self.wheels = wheels  # агрегация: car содержит ссылки на объекты Wheel

wheel1 = Wheel(16)
wheel2 = Wheel(16)
wheel3 = Wheel(16)
wheel4 = Wheel(16)

car = Car([wheel1, wheel2, wheel3, wheel4])

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