Sobes.tech
Junior — Middle

Explique le principe d'injection de dépendances dans le logiciel et comment il est utilisé pour améliorer la modularité du code.

sobes.tech IA

Réponse de l'IA

Внедрение зависимостей (Dependency Injection, DI) — это принцип проектирования, при котором объект получает свои зависимости (например, другие объекты или сервисы) извне, а не создаёт их самостоятельно. Это повышает модульность и тестируемость кода, так как компоненты становятся слабо связанными и легко заменяемыми.

В Node.js DI часто реализуется через передачу зависимостей в конструктор или функции, либо с помощью специальных библиотек (например, InversifyJS).

Пример простого внедрения зависимостей:

class Logger {
  log(message) {
    console.log(message);
  }
}

class UserService {
  constructor(logger) {
    this.logger = logger; // зависимость передается извне
  }

  createUser(name) {
    // логика создания пользователя
    this.logger.log(`User ${name} created`);
  }
}

const logger = new Logger();
const userService = new UserService(logger);
userService.createUser('Alice');

Такой подход позволяет легко заменить Logger на другой, например, для тестирования или изменения способа логирования.