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

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

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

Пример DI в TypeScript:

typescript
interface Logger {
  log(message: string): void;
}

class ConsoleLogger implements Logger {
  log(message: string) {
    console.log(message);
  }
}

class UserService {
  constructor(private logger: Logger) {}

  createUser(name: string) {
    this.logger.log(`User created: ${name}`);
  }
}

const logger = new ConsoleLogger();
const userService = new UserService(logger); // DI через конструктор

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

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

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

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

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