PassFront
  1. PassFront
  2. База знаний
  3. Принципы S.O.L.I.D

Как принципы SOLID связаны между собой?

Принципы S.O.L.I.D

Принципы SOLID подпирают друг друга: DIP опирается на LSP и ISP, OCP достигается полиморфизмом по абстракциям, а SRP решает, где резать классы.

Карта связей

  • DIP → LSP: зависимость от абстракции работает, только если любая реализация ведёт себя по контракту — нарушение LSP взрывает полиморфизм.
  • DIP → ISP: толстая абстракция тащит лишние методы всем клиентам; узкие роли делают инверсию практичной.
  • OCP через DIP и Strategy: расширяем без правок, потому что зависим от стабильной абстракции, а вариации — новые реализации.
  • SRP как компас: определяет границы классов, внутри которых применяются остальные принципы.

Симптом системного нарушения

Одна поломка тянет цепочку: толстый интерфейс (ISP) порождает заглушки в реализациях (LSP), правка требует изменения всех клиентов (OCP), а класс обрастает причинами меняться (SRP).

Коротко для собеседования

Принципы работают связкой: DIP без LSP и ISP ломается, OCP держится на полиморфизме по абстракциям, а SRP задаёт границы классов. На практике рефакторинг начинают с SRP и DIP — после них появляются естественные точки для остальных принципов.

Другие вопросы раздела