Introduction to Inversion of Control

What is Inversion of Control (IoC)?

IoC is basically a pattern that we use to apply Dependency Inversion Principle. Most people mix DIP, IoC and DI together! It’s good to have your concepts clear.

How does IoC relate to DIP?

Please read my post about DIP. This principle says that the high level module should not depend on low level module. It doesn’t really says how to do it. Basically, as discussed above, IoC is the concept or pattern(ish) that we use to define how DIP can be achieved.

Types of Inversion that can be used:

Control over the interface between two systems or components: Interface Inversion

Control over the flow of an application: Flow Inversion

Control over dependency creating and binding: Dependency Creation or Binding Inversion. Dependency Injection, Factory Pattern, Service Locator, etc are different types of Creation Inversion.

Siddharth Pandey is a Software Engineer with thorough hands-on commercial experience & exposure to building enterprise applications using Agile methodologies. Siddharth specializes in building, managing on-premise, cloud based real-time standard, single page web applications (SPAs). He has successfully delivered applications in health-care, finance, insurance, e-commerce sectors for major brands in the UK. Other than programming, he also has experience of managing teams, trainer, actively contributing to the IT community by sharing his knowledge using Stack Overflow, personal website & video tutorials.