Используете ли вы принцип инверсии зависимостей в своих проектах?

Да, принцип инверсии зависимостей (Dependency Inversion Principle, DIP) часто используется для повышения гибкости и тестируемости кода.

Короткий ответ

Что ответить на собеседовании

Да, принцип инверсии зависимостей (Dependency Inversion Principle, DIP) часто используется для повышения гибкости и тестируемости кода. В Python это достигается через использование абстракций (например, интерфейсов или базовых классов) и внедрение зависимостей через параметры функций или конструкторы классов.

Подробный разбор

Ответ с пояснениями

Да, принцип инверсии зависимостей (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, что соответствует принципу инверсии зависимостей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее