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

Для чего нужна инверсия зависимостей

Инверсия зависимостей (Dependency Inversion Principle, DIP) — один из принципов SOLID. Он гласит, что модули верхнего уровня не должны зависеть от модулей нижнего уровня, а оба должны зависеть от абстракций. Это позволяет уменьшить связанность кода и упростить его тестирование и модификацию.

Пример без DIP:

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

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

С DIP:

java
interface Switchable {
    void turnOn();
}

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

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

Теперь Switch зависит от абстракции (Switchable), а не от конкретной реализации (LightBulb). Это позволяет легко добавлять новые устройства без изменения кода Switch.

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

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

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

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