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

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

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

Пример без DIP:

javascript
class LightBulb {
  turnOn() { /* ... */ }
}

class Switch {
  constructor(bulb) {
    this.bulb = bulb;
  }
  operate() {
    this.bulb.turnOn();
  }
}

Пример с DIP:

javascript
class Switchable {
  turnOn() {}
}

class LightBulb extends Switchable {
  turnOn() { /* ... */ }
}

class Switch {
  constructor(device) {
    this.device = device;
  }
  operate() {
    this.device.turnOn();
  }
}

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

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

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

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

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