Back to questions
СБЕР
Росатом
Junior — Middle
103
Объясните принцип внедрения зависимостей в программном обеспечении и как он используется для повышения модульности кода.
Companies where asked
Answer from AI
sobes.tech AI
Внедрение зависимостей (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 на другой, например, для тестирования или изменения способа логирования.