Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Python: dependency injection, inversion, solid, testing, architecture

Как работает принцип внедрения зависимостей (Dependency Injection) из SOLID?

Вопрос проверяет понимание механизма внедрения зависимостей, используемого для повышения гибкости и тестируемости кода.

Короткий ответ

Dependency Injection — это способ передать объект, от которого зависит другой объект, извне, а не создавать его внутри. Это помогает избежать жестких связей между компонентами и облегчает тестирование.

Длинный ответ

Основная идея:

  • Зависимость (например, сервис) создается не внутри класса, а передается ему.

  • Класс не знает, как создается зависимость, он только использует её.

Варианты внедрения:

  • Через конструктор (наиболее частый)

  • Через сеттер

  • Через метод

class Service:
    	def get_data(self):
        	return "data"

class Controller:
    	def __init__(self, service):
        	self.service = service

controller = Controller(Service())  # внедрение зависимости

Преимущества:

  • Упрощает модульное тестирование (можно подставить мок).

  • Повышает гибкость архитектуры.

  • Уменьшает связанность компонентов.

Вывод:
Используйте DI, чтобы упростить замену зависимостей, протестировать классы изолированно и следовать принципам SOLID.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#dependency injection

#inversion

#solid

#testing

#architecture

Подпишись на Python Developer в телеграм