Встречается на собеседованиях • сегодня
Что инвертируется в принципе Инверсии Зависимости
Принцип инверсии зависимостей (DIP) гласит, что высокоуровневые модули не должны зависеть от низкоуровневых. Оба должны зависеть от абстракций. Инвертируется направление зависимости: вместо того чтобы высокоуровневый модуль напрямую зависел от конкретной реализации низкоуровневого, оба зависят от интерфейса (абстракции).
Пример на Python:
python
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 UserRepository: # Высокоуровневый модуль
def __init__(self, db: Database): # Зависит от абстракции
self.db = db
def save_user(self, user_data):
self.db.save(user_data)Здесь UserRepository зависит от абстрактного Database, а не от конкретной MySQL - направление зависимости инвертировано.

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