SOLID — это аббревиатура первых пяти принципов объектно-ориентированного проектирования (ООП), разработанных Робертом С. Мартином (также известным как дядя Боб).
Эти принципы устанавливают методы, которые позволяют разрабатывать программное обеспечение с учетом необходимости поддержки и расширения по мере роста проекта. Принятие этих методов также может помочь избежать запахов кода, рефакторинга кода и гибкой или адаптивной разработки программного обеспечения.
SOLID означает:
S: принцип единой ответственности.
O: принцип открытости-закрытости.
L: Принцип подстановки Лисков.
I: Принцип разделения интерфейса.
D: Принцип инверсии зависимостей.
Основными идеями являются
принцип единой ответственности: «У класса никогда не должно быть более одной причины для изменения». Другими словами, у каждого класса должна быть только одна обязанность.
Принцип открытости-закрытости: «Программные объекты… должны быть открыты для расширения, но закрыты для модификации».
Принцип подстановки Лискова: «Функции, использующие указатели или ссылки на базовые классы, должны иметь возможность использовать объекты производных классов, не зная об этом».
Принцип разделения интерфейса: "Много клиентских интерфейсов лучше, чем один интерфейс общего назначения".
Принцип инверсии зависимостей: "Зависит от абстракций, [а не] от конкретики".
Хотя принципы SOLID применимы к любому объектно-ориентированному проектированию, они также могут формировать основную философию для таких методологий, как гибкая разработка или адаптивная разработка программного обеспечения.