Статья
Принципы SOLID

Принципы SOLID

20 декабря 2017

Single responsibility - принцип единственной ответственности (каждый класс должен решать конкретную задачу).
Слепое следование принципу единственной ответственности приводит к избыточной сложности приложения, его поддержки и тестирования. SRP стоит применять только тогда, когда это оправдано.

Open Closed Principle - принцип открытости/закрытости (классы, функции должны быть открыты для расширения, но закрыты для модификации).
- поведение сущности может быть расширено путём создания новых типов сущностей
- в результате расширения поведения сущности, не должны вноситься изменения в код, который эту сущность использует


Liskov Substitution Principle - принцип подстановки Барбары Лисков (поведение наследующих классов не должно противоречить поведению, заданному базовым классом).
Соблюдение принципа позволяет гарантировать, что любой созданный нами дочерний класс будет без проблем использоваться ранее реализованными модулями, которые работали с родительским.


Interface Segregation Principle - принцип разделения интерфейса (много интерфейсов, специально предназначенных для различных задач, лучше, чем один интерфейс общего назначения).


Dependency Inversion Principle - принцип инверсии зависимостей (модули верхних уровней не должны зависеть от модулей нижних уровней, оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей - детали должны зависеть от абстракций.)



Источники:

https://ru.wikipedia.org/wiki/SOLID