Какие есть принципы SOLID?
Классы
Принципы SOLID — это Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation и Dependency Inversion. Пять правил проектирования для гибкого и поддерживаемого кода.
Расшифровка
S — Single Responsibility
Один модуль — одна ответственность, одна причина для изменения.
O — Open/Closed
Код открыт для расширения, закрыт для модификации: новую функциональность добавляют, не меняя существующий код (например, полиморфизмом).
L — Liskov Substitution
Объект подтипа можно подставить вместо базового типа без нарушения корректности программы.
I — Interface Segregation
Много специализированных интерфейсов лучше одного «толстого»: клиент не зависит от методов, которые не использует.
D — Dependency Inversion
Модули верхнего уровня зависят от абстракций, а не от конкретных реализаций; детали зависят от абстракций.
Пример на фронтенде
- SRP: разделить компонент отображения и логику загрузки данных.
- DIP: передавать сервис/репозиторий как зависимость, чтобы подменять моком в тестах.
Зачем
Снижают связанность, упрощают тестирование, расширение и рефакторинг.
Коротко для собеседования
SOLID: Single Responsibility (одна ответственность), Open/Closed (расширяй, не меняй), Liskov Substitution (подтип заменяет тип), Interface Segregation (узкие интерфейсы), Dependency Inversion (зависимость от абстракций). Цель — гибкий, тестируемый код.