TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #1501 3.34K
🤔 Расскажи что такое 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;
}
}


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 10
More from @easy_java_ru
  1. Oct 7, 2026🤔 К какой категории сущности относится Primary Key? Primary Key (первичный ключ) в базах…
  2. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для Java разработчика, которые нигде больше не пуб…
  3. Oct 7, 2026Post #2949
  4. Oct 6, 2026🤔 Какая сложность вставки элемента в LinkedList? - O(1) — если вставка происходит в начал…
  5. Oct 6, 2026🤔 К какому принципу ООП относится переопределение методов? Переопределение методов (Metho…
  6. Oct 6, 2026Post #2946
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 →