SOLID
SOLID (сокр. от single responsibility, open–closed, Liskov substitution, interface segregation и dependency inversion) — специальные принципы в ООП для так называемого «чистого кода». Сами принципы сочинил всем известный инженер Дядюшка Боб, и потом популяризовал через овер 9000 книг по чистому коду.
Внимание — SOLID, это не паттерны проектирования!
Собственно и SOLID[править]
Сам SOLID создан чтобы твой ООПшный код был более гибкий. То есть, чтобы его легко можно было разобрать, дополнять, изменять и т. д. (ну короче, полезность СОЛИДа можно узнать нормально только на практике). Или как сами сочинители этих принципов говорят, чтобы код был «чистым», а не говнокодом, чтобы код не вонял. ВАЖНО, что эти принципы не всегда нужно использовать, а в некоторых ситуациях они даже наоборот, усложняют и ухудшают код. Да и СОЛИД больше всего подходит под статически типизированные языки (типа C++, C#, Java и т. д.), а не под динамически кокозированные типизированные языки (типа питухон, ПХП, жабаскрипт и т. д.). Но все же можно солид использовать для динамически типизированных языков (для них больше всего нормально подходит SRP), но не так хорошо как для статических.
SOLID делиться на 5 принципов (что конечно и говорит это сокращение из пяти букв):
- Принцип единственной ответственности (Single responsibility principle, SRP)
У каждого класса должна быть только одна причина для изменения, то есть каждый класс должен отвечать только за одну задачу. - Принцип открытости/закрытости (Open-closed principle, OCP)
Сущности программы должны быть открыты для расширения, но закрыты для изменения. Это значит, что функциональность системы можно было легко расширять, не изменяя уже существующий код. - Принцип подстановки Лисков (Liskov substitution principle, LSP)
Должна быть возможность вместо базового (родительского) типа (класса) подставить любой его подтип (класс-наследник), при этом работа программы не должна измениться. - Принцип разделения интерфейса (Interface segregation principle, ISP)
- Принцип инверсии зависимостей (Dependency inversion principle, DIP)
SRP[править]
Принцип единственной ответственности (Single responsibility principle, SRP) — самый простой и популярный принцип. Он означает, что каждый любой компонент[1] должен нести ответственность только за одну задачу.
Примечания[править]
- ↑ Под компонентом может выступать класс, структура, метод, функция.