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

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

Оба термина описывают отношения между объектами, но с разной степенью зависимости:

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

  • Объект-часть не существует без объекта-целого
  • Жизненный цикл зависимого объекта контролируется владельцем
  • Пример: Двигатель не может существовать без автомобиля
java
class Engine { /*...*/ }

class Car {
    private Engine engine;
    
    public Car() {
        this.engine = new Engine(); // создается внутри
    }
}

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

  • Объект-часть может существовать независимо
  • Передается извне через конструктор/сеттер
  • Пример: Водитель может существовать без автомобиля
java
class Driver { /*...*/ }

class Car {
    private Driver driver;
    
    public void setDriver(Driver driver) {
        this.driver = driver; // получаем извне
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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