Какое значение имеет буква D в принципах SOLID?

Буква D в принципах SOLID означает Dependency Inversion Principle — принцип инверсии зависимостей.

Короткий ответ

Что ответить на собеседовании

Буква D в принципах SOLID означает Dependency Inversion Principle — принцип инверсии зависимостей.

Подробный разбор

Ответ с пояснениями

Буква 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, а не от конкретной реализации.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее