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])
В отличие от композиции, где вложенные объекты не существуют без контейнера, при агрегации объекты могут жить самостоятельно.