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

Что такое принцип инверсии зависимостей

Принцип инверсии зависимостей (Dependency Inversion Principle, DIP) — один из пяти SOLID принципов. Он гласит:

  1. Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
  2. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Пример без DIP:

java
class LightBulb {
    void turnOn() { /* ... */ }
}

class Switch {
    private LightBulb bulb;
    Switch(LightBulb bulb) { this.bulb = bulb; }
    void operate() { bulb.turnOn(); }
}

Пример с DIP:

java
interface Switchable {
    void turnOn();
}

class LightBulb implements Switchable {
    public void turnOn() { /* ... */ }
}

class Switch {
    private Switchable device;
    Switch(Switchable device) { this.device = device; }
    void operate() { device.turnOn(); }
}

Преимущества:

  • Уменьшение связанности кода
  • Гибкость (можно подключать любые устройства)
  • Упрощение тестирования (можно использовать моки)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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