Встречается на собеседованиях • сегодня

Расскажи про принципы SOLID

SOLID — это пять принципов объектно-ориентированного проектирования, которые помогают создавать гибкий и поддерживаемый код:

  1. Single Responsibility (SRP) — класс должен иметь только одну причину для изменения (одну ответственность).
    python
    class User:
        def __init__(self, name):
            self.name = name
    
    class UserDB:
        def save(self, user):
            # Сохранение в БД
  1. Open-Closed (OCP) — классы должны быть открыты для расширения, но закрыты для модификации.

    python
    class Discount:
        def apply(self, price):
            pass
    
    class VIPDiscount(Discount):
        def apply(self, price):
            return price * 0.8
  2. Liskov Substitution (LSP) — подклассы должны заменять базовые классы без изменения поведения программы.

  3. Interface Segregation (ISP) — клиенты не должны зависеть от интерфейсов, которые они не используют.

  4. Dependency Inversion (DIP) — завись от абстракций, а не от конкретных реализаций.

    python
    class Database(ABC):
        @abstractmethod
        def connect(self):
            pass
    
    class MySQL(Database):
        def connect(self):
            return "MySQL connection"

Эти принципы помогают избегать спагетти-кода и упрощают масштабирование.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы