TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #2612 1.49K
🤔 Расскажи что такое inversion of Conrol

Inversion of Control (IoC) — это принцип проектирования, при котором управление созданием и жизненным циклом объектов передаётся внешней системе.

🟠Почему нужен IoC?
Без IoC код сильно зависит от конкретных классов, что усложняет тестирование и поддержку.
class Car {
private Engine engine;

public Car() {
this.engine = new Engine(); // Прямое создание зависимости ❌
}
}


С IoC (зависимость передаётся извне)
class Car {
private final Engine engine;

public Car(Engine engine) { // Зависимость передаётся через конструктор
this.engine = engine;
}
}


🟠Как реализуется IoC?
IoC достигается через паттерны проектирования, такие как:
Dependency Injection (DI) – передача зависимостей извне (через конструктор, поле или метод).
Factory Method – создание объектов через фабрики.
Event-driven подход – реакция на события вместо явного вызова методов.

🟠IoC в Spring
Spring реализует IoC через контейнер IoC, который управляет созданием объектов (бинов) и их зависимостями.
@Component
class Engine {}

@Component
class Car {
private final Engine engine;

@Autowired
public Car(Engine engine) { // Spring автоматически передаст нужный объект
this.engine = engine;
}
}


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 5
More from @easy_java_ru
  1. Oct 2, 2026🤔 Что такое синхронизация и зачем она нужна? Синхронизация — это механизм, который исполь…
  2. Oct 2, 2026Post #2933
  3. Oct 1, 2026🤔 Как подключить свою библиотеку в другом проекте? Для подключения своей библиотеки: - со…
  4. Oct 1, 2026Post #2931
  5. Oct 1, 2026🤔 Как бороться в БД с SQL Injection? SQL Injection – это атака, при которой злоумышленник…
  6. Sep 30, 2026Post #2929
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →