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

В чем разница между агрегацией и композицией

Агрегация и композиция — это виды ассоциации между классами, но с разной степенью зависимости:

Агрегация (слабая связь):

  • Объект может существовать независимо от контейнера
  • Пример: Университет и Студент. Студент может перейти в другой университет или существовать без него
python
class Student:
    pass

class University:
    def __init__(self):
        self.students = []  # агрегация

Композиция (сильная связь):

  • Объект не может существовать без контейнера
  • Жизненный цикл зависимого объекта управляется контейнером
  • Пример: Дом и Комната. Комната не существует без дома
python
class Room:
    pass

class House:
    def __init__(self):
        self.rooms = [Room()]  # композиция

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

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

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

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

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