Встречается на собеседованиях • сегодня
Какие знаешь основные принципы SOLID
SOLID — это пять принципов объектно-ориентированного проектирования, которые помогают создавать гибкий и поддерживаемый код:
-
Single Responsibility (SRP) — класс должен иметь только одну причину для изменения (одну ответственность).
python# Плохо: класс и логирует, и сохраняет данные class User: def save(self): ... def log(self): ... # Хорошо: разделение на два класса class User: def save(self): ... class Logger: def log(self): ... -
Open-Closed (OCP) — классы должны быть открыты для расширения, но закрыты для модификации.
pythonclass Discount: def apply(self): ... class VIPDiscount(Discount): # Расширение без изменения базового класса def apply(self): ...
-
Liskov Substitution (LSP) — подклассы должны заменять родительские классы без изменения поведения программы.
pythonclass Bird: def fly(self): ... class Penguin(Bird): # Нарушение LSP, т.к. пингвины не летают def fly(self): raise NotImplementedError -
Interface Segregation (ISP) — клиенты не должны зависеть от методов, которые они не используют.
python# Плохо: один интерфейс с избыточными методами class Worker: def work(self): ... def eat(self): ... # Хорошо: разделение интерфейсов class Workable: def work(self): ... class Eatable: def eat(self): ... -
Dependency Inversion (DIP) — зависимости должны строиться на абстракциях, а не на конкретных реализациях.
pythonclass Database(ABC): @abstractmethod def save(self): ... class MySQL(Database): ... class UserService: def __init__(self, db: Database): ... # Зависимость от абстракции

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы