Принципы SOLID Flashcards
SOLID principles
Single Responsibility Principle
У класса должна быть только одна причина для изменения
Open Closed Principle
Класс должен быть открыт для расширения и закрыт для изменения.
1. открыты для расширения: означает, что поведение сущности может быть расширено путём создания новых типов сущностей.
2. закрыты для изменения: в результате расширения поведения сущности, не должны вноситься изменения в код, который эту сущность использует.
Liskov Substitution Principle
Клиентский код должен иметь возможность использовать объект класса-наследника там, где разрешено использовать объект базового класса не зная об этом.
Объекты должны быть заменяемы своими подтипами без нарушения корректности работы программы
Interface Segregation Principle
Много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения. Классы не должны зависеть от методов, которые они не используют.
Dependency Inversion Principle
- Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба модуля должны зависеть от абстракций. (Интерфейс должен быть частью модуля верхнего уровня, а модули нижних уровней должны его реализовывать).
- Абстракции не должны зависеть от деталей, детали должны зависеть от абстракций