D - Dependency Inversion Principle - принцип инверсии зависимостей

Модули верхнего уровня не должны зависеть от модулей нижнего уровня. И те, и другие должны зависеть от абстракции. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

  • Высокоуровневые модули не должны зависеть от более низкоуровневых модулей. Оба должны зависеть от абстракции.
  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Во-первых, давайте определим термины, используемые здесь, проще.

Высокроуровневый модуль (или класс) - класс, выполняющий действие с помощью инструмента.

Низкоуровневый модуль (или класс) - инструмент, необходимый для выполнения действия.

Абстракция - представляет собой интерфейс, соединяющий два класса.

Детали - то, как работает инструмент.

Этот принцип гласит, что класс не должен смешиваться с инструментом, который он использует для выполнения действия. Скорее, он должен быть объединен с интерфейсом, который позволит инструменту соединиться с классом. Он также говорит, что и класс, и интерфейс не должны знать, как работает инструмент. Однако, инструмент должен соответствовать спецификации интерфейса.

Цель

Этот принцип направлен на уменьшение зависимости высокоуровневого класса от низкоуровневого путем внедрения интерфейса.

 

Oct. 12, 2023, Источник

Примеры ответов: