D в SOLID означает Принцип инверсии зависимостей (Dependency Inversion Principle - DIP).
Принцип гласит:
Суть DIP заключается в том, чтобы высокоуровневые политики не зависели напрямую от низкоуровневых реализаций. Вместо этого обе стороны должны зависеть от абстракций (интерфейсов или абстрактных классов).
Связь с интерфейсами:
Интерфейсы выступают в роли этих самых абстракций. Они определяют контракт, которому должна соответствовать конкретная реализация.
Пример без DIP:
php
В этом примере UserRepository
(модуль верхнего уровня, представляющий бизнес-логику) напрямую зависит от MySqlConnection
(модуль нижнего уровня, представляющий детали реализации). Если потребуется перейти на PostgreSQL, придется менять UserRepository
.
Пример с DIP и использованием интерфейса:
php
D в SOLID означает Принцип инверсии зависимостей (Dependency Inversion Principle - DIP).
Принцип гласит:
Суть DIP заключается в том, чтобы высокоуровневые политики не зависели напрямую от низкоуровневых реализаций. Вместо этого обе стороны должны зависеть от абстракций (интерфейсов или абстрактных классов).
Связь с интерфейсами:
Интерфейсы выступают в роли этих самых абстракций. Они определяют контракт, которому должна соответствовать конкретная реализация.
Пример без DIP:
php
В этом примере UserRepository
(модуль верхнего уровня, представляющий бизнес-логику) напрямую зависит от MySqlConnection
(модуль нижнего уровня, представляющий детали реализации). Если потребуется перейти на PostgreSQL, придется менять UserRepository
.
Пример с DIP и использованием интерфейса:
php
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.