Встречается на 1% собеседований по Python
Какие знаешь основные принципы 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
интервью вопросы и ответы