Встречается на собеседованиях • сегодня
Какие паттерны соответствуют принципам 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
интервью вопросы и ответы