Назад к вопросам
Junior — Middle
65
Используете ли вы принцип инверсии зависимостей в своих проектах?
Ответ от нейросети
sobes.tech AI
Да, принцип инверсии зависимостей (Dependency Inversion Principle, DIP) часто используется для повышения гибкости и тестируемости кода. В Python это достигается через использование абстракций (например, интерфейсов или базовых классов) и внедрение зависимостей через параметры функций или конструкторы классов.
Пример:
from abc import ABC, abstractmethod
class Database(ABC):
@abstractmethod
def save(self, data):
pass
class MySQLDatabase(Database):
def save(self, data):
print(f"Saving {data} to MySQL")
class Service:
def __init__(self, db: Database):
self.db = db
def process(self, data):
# бизнес-логика
self.db.save(data)
# Использование
mysql_db = MySQLDatabase()
service = Service(mysql_db)
service.process('данные')
Такой подход позволяет легко менять реализацию базы данных без изменения класса Service, что соответствует принципу инверсии зависимостей.