Внедрение зависимостей(DI) и инверсия управления(IoC) в Python
Внедрение зависимостей(DI) и инверсия управления(IoC) в Python
Внедрение зависимостей - это принцип, который помогает добиться инверсии управления.
Давайте посмотрим, что такое внедрение зависимостей. Внедрение зависимостей(Dependency Injection) - это принцип, который помогает уменьшить взаимосвязь(coupling) и повысить сплоченность(cohesion).
Низкое сцепление(low coupling) обеспечивает гибкость. Ваш код станет легче изменять и тестировать.
Внедрение зависимостей дает вам 3 преимущества:
Гибкость. Компоненты слабо связаны. Вы можете легко расширить или изменить функциональность системы, комбинируя компоненты по-разному. Вы даже можете сделать это на лету.
Проверяемость. Тестировать легко, потому что вы можете легко внедрять имитацию вместо реальных объектов, которые используют API или базу данных и т.д.
Четкость и ремонтопригодность. Внедрение зависимостей помогает выявить зависимости. Неявное становится явным. И «Явное лучше, чем неявное» (PEP 20 - Дзен Python). У вас есть все компоненты и зависимости, определенные явно в контейнере. Это обеспечивает обзор и контроль структуры приложения. Это легко понять и изменить.