Встречается на собеседованиях • сегодня
Что такое инверсия контроля в программировании
Инверсия контроля (IoC, Inversion of Control) — это принцип проектирования, при котором управление потоком программы передается внешнему фреймворку или контейнеру, а не контролируется самим кодом. Вместо того чтобы объекты создавали свои зависимости напрямую, они получают их извне (например, через DI — Dependency Injection).
Пример с DI (внедрение зависимости):
python
class Database:
def save(self, data):
print(f"Saving {data} to database")
class UserService:
def init(self, db: Database): # Зависимость внедряется извне
self.db = db
text
def create_user(self, user):
self.db.save(user)IoC-контейнер (условно) создает зависимости и передает их
db = Database()
service = UserService(db) # Управление зависимостями "инвертировано"
service.create_user("Alice")
text
**Ключевые моменты:**
- Уменьшает связанность кода (low coupling).
- Упрощает тестирование (можно подменить зависимости на mock-объекты).
- Реализуется через DI, сервис-локатор или фабрики.
В Python IoC часто встречается во фреймворках (Django, Flask), где ты регистрируешь обработчики, а фреймворк сам решает, когда их вызывать.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы