Какие знаешь принципы программирования
Python
Middle
Без компании
Какие знаешь принципы программирования
Ответы
SOLID — это пять основных принципов объектно-ориентированного проектирования:
- **Single Responsibility** — класс должен решать только одну задачу.
- **Open-Closed** — классы должны быть открыты для расширения, но закрыты для изменений.
- **Liskov Substitution** — подклассы должны заменять базовые классы без ошибок.
- **Interface Segregation** — много специализированных интерфейсов лучше одного общего.
- **Dependency Inversion** — зависимости должны строиться на абстракциях, а не на конкретных классах.
Пример нарушения **Single Responsibility**:
```
class User:
def __init__(self, name):
self.name = name
def save_to_db(self): # Нарушение: класс знает о БД
print(f"Saving {self.name} to database")
```
Исправленный вариант:
```
class User:
def __init__(self, name):
self.name = name
class UserDB:
def save(self, user):
print(f"Saving {user.name} to database")
```