Назад к вопросам
Junior — Middle
61
Объясните принцип инверсии управления на примере системы вызова такси.
Ответ от нейросети
sobes.tech AI
Инверсия управления (IoC) — это принцип, при котором управление созданием и связыванием объектов передаётся внешнему контейнеру или фреймворку, а не реализуется напрямую в коде.
Пример на системе вызова такси:
- Вместо того, чтобы класс
TaxiServiceсам создавал объектыDriverилиCar, эти зависимости передаются ему извне (например, через конструктор). - Контейнер IoC отвечает за создание и связывание всех объектов.
public class TaxiService {
private Driver driver;
// Зависимость передаётся извне
public TaxiService(Driver driver) {
this.driver = driver;
}
public void callTaxi() {
driver.driveToCustomer();
}
}
Здесь TaxiService не создаёт Driver самостоятельно, а получает его извне. Это упрощает тестирование, расширение и поддержку кода, так как зависимости можно менять без изменения самого класса.