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

Какие паттерны соответствуют принципам SOLID

Single Responsibility Principle (SRP)
Каждый класс должен иметь одну ответственность. Пример:

python
class User:
    def __init__(self, name):
        self.name = name

class UserDB:
    def save(self, user):
        print(f"Saving {user.name} to DB")

Open-Closed Principle (OCP)
Классы открыты для расширения, но закрыты для модификации. Пример:

python
class Discount:
    def apply(self, price):
        return price

class VIPDiscount(Discount):
def apply(self, price):
return price * 0.8

text

**Liskov Substitution Principle (LSP)**  
Подклассы должны заменять базовые классы. Пример:  
```python
class Bird:
    def fly(self):
        pass

class Duck(Bird):
    def fly(self):
        print("Duck flying")

# Не нарушает LSP

Interface Segregation Principle (ISP)
Много специализированных интерфейсов лучше одного общего. Пример:

python
class Printer:
    def print(self):
        pass

class Scanner:
    def scan(self):
        pass

# Вместо одного интерфейса с print() и scan()

Dependency Inversion Principle (DIP)
Зависимости на абстракциях, а не на деталях. Пример:

python
class Database(ABC):
    @abstractmethod
    def connect(self):
        pass

class MySQL(Database):
    def connect(self):
        print("MySQL connection")

class App:
    def __init__(self, db: Database):
        self.db = db
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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