Расскажи про принципы 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" ``` Эти принципы помогают избегать спагетти-кода и упрощают масштабирование.