Back to questions
Junior — Middle
86
Какое значение имеет буква D в принципах SOLID?
Answer from AI
sobes.tech AI
Буква D в принципах SOLID означает Dependency Inversion Principle — принцип инверсии зависимостей.
Этот принцип гласит, что:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Проще говоря, вместо того чтобы напрямую создавать или использовать конкретные реализации, код должен работать с абстракциями (например, интерфейсами). Это повышает гибкость, облегчает тестирование и поддержку.
Пример на Node.js с использованием интерфейса (через соглашение):
// Абстракция
class Logger {
log(message) {
throw new Error('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 зависит от абстракции Logger, а не от конкретной реализации.