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

Что такое dependency inversion principle

Dependency Inversion Principle (DIP) — один из SOLID принципов, который гласит:

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

Пример без DIP:

javascript
class Database {
  save(data) { /* сохранение в БД */ }
}

class UserService {
  constructor() {
    this.db = new Database(); // жёсткая зависимость
  }
}

Пример с DIP:

javascript
class Database {
  save(data) { /* абстракция */ }
}

class UserService {
  constructor(database) { // зависимость от абстракции
    this.db = database;
  }
}

const db = new Database();
const userService = new UserService(db); // инъекция зависимости

Выгоды:

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

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

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

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