Встречается на собеседованиях • сегодня

Что такое инверсия контроля в программировании

Инверсия контроля (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), где ты регистрируешь обработчики, а фреймворк сам решает, когда их вызывать.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы