The question of “What is Inversion of Control?” or “What is Dependency Injection?” is met with code examples, vague explanations and even on StackOverflow identified as low quality answers —

We use inversion of control and dependency injection and even push it as the correct way to build applications. Yet, we can not clearly articulate why!!!

The reason is we have not clearly identified what “control” is. Once we understand what we are inverting, the concept of Inversion of Control vs Dependency Injection is not actually the question to be asked. It actually becomes the following:

Inversion of Control = Dependency (state) Injection + Thread Injection + Continuation (function)…


Daniel Sagenschneider

Evangelist for Inversion of Coupling Control

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store