Встречается на собеседованиях • сегодня
Что такое dependency inversion principle
Принцип инверсии зависимостей (DIP) — один из SOLID-принципов, который гласит:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Преимущества:
- Уменьшает связанность кода.
- Упрощает тестирование и замену реализаций.
- Делает систему гибче и расширяемее.
Пример:
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 UserService: # Модуль верхнего уровня
def __init__(self, db: Database): # Зависит от абстракции
self.db = db
def create_user(self, user_data):
self.db.save(user_data)
# Использование
service = UserService(MySQL())
service.create_user({"name": "Alice"})Здесь UserService зависит от абстракции Database, а не от конкретной СУБД.

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