Встречается на собеседованиях • сегодня
Может ли работать Dependency Inversion без Dependency Injection
Dependency Inversion (DIP) и Dependency Injection (DI) — это разные, но связанные концепции. DIP — это принцип проектирования, который гласит, что модули высокого уровня не должны зависеть от модулей низкого уровня, а оба должны зависеть от абстракций. DI — это паттерн, реализующий DIP, передавая зависимости извне.
DIP без DI возможен, но менее удобен. Например, можно использовать фабрики или сервис-локаторы для создания зависимостей внутри класса, но это усложняет тестирование и нарушает чистоту DIP.
Пример без DI:
python
class Database:
def save(self, data):
print(f"Saving {data}")
class UserService:
def __init__(self):
self.db = Database() # Зависимость создается внутри
def create_user(self, user):
self.db.save(user)Пример с DI:
python
class UserService:
def __init__(self, db: Database): # Зависимость передается извне
self.db = db
def create_user(self, user):
self.db.save(user)DI делает код гибче, но DIP можно соблюдать и без него, используя другие механизмы инверсии управления.

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