Шпаргалка SOLID S – Single Responsibility Principle Принцип единой ответственности гласит: Модуль должен отвечать перед одним и только одним актором. Под актором понимается группа, состоящая из одного или нескольких лиц, желающих изменения поведения программного модуля. O – Open-Closed Principle Принцип открытости/закрытости: программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения. Поведение сущности может быть расширено путём создания новых типов сущностей. В результате расширения поведения сущности, не должны вноситься изменения в код, который эту сущность использует. L – Liskov Substitution Principle Принцип подстановки Барбары Лисковой: Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом. Если S является подтипом T, тогда объекты типа T в программе могут быть замещены объектами типа S без каких-либо изменений желательных свойств этой программы. I – Interface Segregation Principle Принцип разделения интерфейсов: программные сущности не должны зависеть от методов, которые они не используют. D – dependency inversion principle Принцип инверсии зависимостей: классы должны зависеть от абстракций, а не от конкретных деталей. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций. Разворот зависимости осуществляется через выделение интерфейса.