Что такое dependency inversion principle

Python Senior Без компании
Что такое dependency inversion principle
Ответы
Принцип инверсии зависимостей (DIP) — один из SOLID-принципов, который гласит: - **Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.** - **Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.** **Преимущества:** - Уменьшает связанность кода. - Упрощает тестирование и замену реализаций. - Делает систему гибче и расширяемее. **Пример:** ``` from abc import ABC, abstractmethod class Database(ABC): # Абстракция @abstractmethod def save(self, data): pass class MySQL(Database): # Детали def save(self, data): print(f"Saving {data} to MySQL") class UserService: # Модуль верхнего уровня def __init__(self, db: Database): # Зависит от абстракции self.db = db def create_user(self, user_data): self.db.save(user_data) # Использование service = UserService(MySQL()) service.create_user({"name": "Alice"}) ``` Здесь `UserService` зависит от абстракции `Database`, а не от конкретной СУБД.