What is Inverted in the Dependency Inversion Principle?
After years of experience, I found the concept of inversion difficult for many to understand. I recently discovered a new and very effective way to explain it that will help you understand it fully.
It seems strange because it talks about inversion, which implies something is upside-down. Although this is true to some extent, what we’re actually turning is something that should be reversed inherently.
Un-inverted dependencies
To understand correctly what an inverted dependency or inverted control means, we need to first understand what we mean when it is not inverted.
An example is better than a thousand words; let’s start with one of the oldest examples I can find: a menu.
In this example, the function moviesMenu asks for options and then, based on the user’s selection, it executes the function addMovie or the function listMovies. We can…