Встречается на собеседованиях • сегодня

Как композиция и агрегация связаны друг с другом

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

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

python
class Engine:
    pass

class Car:
    def __init__(self, engine: Engine):
        self.engine = engine  # агрегация

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

python
class Heart:
    pass

class Human:
    def __init__(self):
        self.heart = Heart()  # композиция

Итог: агрегация — "имеет", композиция — "владеет". Обе описывают отношения часть-целое, но с разной степенью ответственности.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы