Встречается на собеседованиях • сегодня
Как связаны Dependency Injection и Dependency Inversion
Dependency Injection (DI) и Dependency Inversion Principle (DIP) связаны, но это не одно и то же.
DIP — принцип SOLID, гласящий, что модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций (интерфейсов/абстрактных классов).
DI — паттерн, реализующий DIP, позволяющий внедрять зависимости извне (через конструктор, метод или свойство), вместо их жесткого создания внутри класса.
Пример:
python
from abc import ABC, abstractmethod
class Database(ABC): # Абстракция (DIP)
@abstractmethod
def save(self, data): pass
class PostgresDB(Database):
def save(self, data): print(f"Saving {data} to Postgres")
class Service:
def __init__(self, db: Database): # DI через конструктор
self.db = db
def process(self, data):
self.db.save(data)
# Использование:
db = PostgresDB()
service = Service(db) # Внедрение зависимости
service.process("test")DI делает код гибким, тестируемым и соответствующим DIP.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы