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

Что значит буква O в SOLID

Буква O в SOLID означает Open-Closed Principle (Принцип открытости-закрытости).

Суть:
Программные сущности (классы, модули, функции) должны быть открыты для расширения, но закрыты для модификации. Это значит, что новую функциональность нужно добавлять без изменения существующего кода.

Пример нарушения:

python
class Discount:
    def apply(self, customer_type):
        if customer_type == "regular":
            return 0.1  # 10% скидка
        elif customer_type == "vip":
            return 0.2  # 20% скидка
        # При добавлении нового типа придется менять класс!

Пример с соблюдением OCP:

python
from abc import ABC, abstractmethod

class DiscountStrategy(ABC):
    @abstractmethod
    def apply(self):
        pass

class RegularDiscount(DiscountStrategy):
    def apply(self):
        return 0.1

class VIPDiscount(DiscountStrategy):
    def apply(self):
        return 0.2

class Discount:
    def __init__(self, strategy: DiscountStrategy):
        self.strategy = strategy

    def apply(self):
        return self.strategy.apply()

Плюсы:

  • Уменьшает риск ошибок при добавлении функциональности.
  • Упрощает тестирование.
  • Делает код гибче.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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