Difference between dependency injection and inversion of control?

Jahid Momin
2 min readJan 15, 2023

--

Made With Canva — DI vs IOC
DI vs IOC

Dependency Injection (DI) and Inversion of Control (IoC) are related concepts, but they are not the same thing.

Dependency Injection is a design pattern that allows a programmer to remove hard-coded dependencies and make it possible to change them, whether at run-time or compile-time. It is a technique that allows an object to supply its dependencies, instead of having them hard-coded or created within the object itself. This means that an object does not create its dependencies, but they are passed to it. This allows for more flexibility and a cleaner separation of concerns.

Inversion of Control, on the other hand, is a design principle that states that a software component should receive its dependencies from an external source, rather than creating them itself. It is a way to manage and organize the relationships between objects in a program. This allows for more flexibility, reusability, and scalability in the system.

In other words, Dependency Injection is a technique for achieving Inversion of Control. Dependency Injection is one way to implement Inversion of Control in a program. The Spring framework uses Dependency Injection to manage dependencies between objects in an application and provide them to the objects that need them.

In short, Dependency Injection is a specific technique for providing an object with its dependencies, while Inversion of Control is a more general principle of letting a container or framework handle the creation and management of objects and their dependencies.

Happy Learning ! Keep Following .

--

--

Jahid Momin

Team Lead | Sr Software Engineer | Spring boot | Microservices | JavaScript | CodeIgniter | HTML | CSS | ReactJS | NextJS | Youtuber | Writer