Встречается на 1% собеседований по Python
Какие паттерны соответствуют принципам 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")
# Не нарушает LSPInterface 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
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы