Расскажи про принципы SOLID
Python
Junior
Без компании
Расскажи про принципы SOLID
Ответы
SOLID — это пять принципов объектно-ориентированного проектирования, которые помогают создавать гибкий и поддерживаемый код:
- **Single Responsibility (SRP)** — класс должен иметь только одну причину для изменения (одну ответственность).
```
class User:
def __init__(self, name):
self.name = name
class UserDB:
def save(self, user):
# Сохранение в БД
```
- **Open-Closed (OCP)** — классы должны быть открыты для расширения, но закрыты для модификации.
```
class Discount:
def apply(self, price):
pass
class VIPDiscount(Discount):
def apply(self, price):
return price * 0.8
```
- **Liskov Substitution (LSP)** — подклассы должны заменять базовые классы без изменения поведения программы.
- **Interface Segregation (ISP)** — клиенты не должны зависеть от интерфейсов, которые они не используют.
- **Dependency Inversion (DIP)** — завись от абстракций, а не от конкретных реализаций.
```
class Database(ABC):
@abstractmethod
def connect(self):
pass
class MySQL(Database):
def connect(self):
return "MySQL connection"
```
Эти принципы помогают избегать спагетти-кода и упрощают масштабирование.