Junior — Middle
137
Масаланед, ки мисол оваред, ки чӣ гуна принсипи ислоҳоти вобастагиро дар тарҳи системаҳои нармафзор татбиқ кардан мумкин аст?
Ҷавоб аз AI
sobes.tech AI
Принцип инверсии зависимостей (Dependency Inversion Principle) заключается в том, что высокоуровневые модули не должны зависеть от низкоуровневых, а оба должны зависеть от абстракций (интерфейсов). В Node.js это можно реализовать через внедрение зависимостей (Dependency Injection).
Пример:
// Абстракция
class Logger {
log(message) {
throw new Error('Method not implemented');
}
}
// Конкретная реализация
class ConsoleLogger extends Logger {
log(message) {
console.log(message);
}
}
// Высокоуровневый модуль
class UserService {
constructor(logger) {
this.logger = logger; // зависимость через конструктор
}
createUser(name) {
// логика создания пользователя
this.logger.log(`User ${name} created`);
}
}
// Использование
const logger = new ConsoleLogger();
const userService = new UserService(logger);
userService.createUser('Alice');
Здесь UserService зависит не от конкретного ConsoleLogger, а от абстракции Logger, что облегчает тестирование и замену реализации.