SOLID – мнемонический акроним для пяти основных принципов объектно-ориентированного программирования и проектирования.
Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче.
“программные сущности … должны быть открыты для расширения, но закрыты для модификации”.
“функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа не зная об этом”.
“много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения”.
“Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций”.