Встречается на собеседованиях • сегодня
Почему код нужно писать так, чтобы компоненты не зависели от реализации
Принцип инверсии зависимостей (DIP) гласит, что модули высокого уровня не должны зависеть от модулей низкого уровня — оба должны зависеть от абстракций. Это упрощает поддержку, тестирование и масштабирование кода.
Преимущества:
- Легче заменять реализации без изменения зависимого кода
- Упрощается тестирование (можно подменять реальные зависимости mock-объектами)
- Код становится более гибким и переиспользуемым
Пример:
python
from abc import ABC, abstractmethod
class Database(ABC): # Абстракция
@abstractmethod
def save(self, data): ...
class MySQL(Database): # Конкретная реализация
def save(self, data):
print(f"Saving {data} to MySQL")
class Service:
def __init__(self, db: Database): # Зависим от абстракции
self.db = db
# Можно легко подменить реализацию
service = Service(MySQL())
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы