Often programmed in real time, without planning. We leave the logic flow, sometimes we’re lucky and end up doing the right thing, sometimes not.
Do not mean to say that the Inversion Control, is right or wrong way. And yes demonstrate different ways to do an implementation.
So basic, inversion of control, when the control is, for instance, method calls takes place in reverse. I left the software flow control to make such an instance, and leaves it up to a third party. Then comes the confusion. Why behave like dependency injection, many say the same thing, others say no.
The simplest form of understanding Inversion of control is to think as follows.