Питоновское
09.05
Внедрение зависимостей - это паттерн, при котором зависимости объекта не создаются внутри класса, а передаются через конструктор, свойства или методы извне.
Используется в Веб-фреймоврках, тестировании, микросервисах и GUI-приложениях.
Из плюсов, этот патерн гибок, упрощает модульное тестирование, уменьшает связанности и дает возможность добавлять новые сервисы. Но требует настройка DI-контейнера, замедляет старт из-за разрешения зависимостей и из-за того что зависимости могут быть неочевидными возникает сложность отладки.
Пример плохой и хорошей зависимости: Плохая: `class UserService: def init(self): self.db = Database() # Жесткая зависимость
Хорошая: `class UserService: def init(self, db): # Зависимость внедряется извне self.db = db
#weekofpatterns``еще контент в этом сообществе
еще контент в этом соообществе
Питоновское
09.05
войдите, чтобы увидеть
и подписаться на интересных профи