DIP означает, что высокоуровневая логика зависит от абстракции, а конкретный адаптер её реализует. В Python это можно выразить Protocol, ABC или явным duck-typed контрактом.
Как вы применяете принцип инверсии зависимостей (DIP) в Python?
DIP означает, что высокоуровневая логика зависит от абстракции, а конкретный адаптер её реализует. В Python это можно выразить Protocol, ABC или явным duck-typed контрактом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
DIP означает, что высокоуровневая логика зависит от абстракции, а конкретный адаптер её реализует. В Python это можно выразить Protocol, ABC или явным duck-typed контрактом.
Например, сервис заказа получает репозиторий через конструктор и вызывает save(), не создавая внутри конкретный SQL-клиент. В production передаётся адаптер базы, в unit-тесте — контролируемая подмена. Dependency injection помогает реализовать принцип, но сам контейнер зависимостей не обязателен. Важно направить зависимость по смыслу домена, а не создать интерфейс для каждого класса без пользы.