Not every app is built using best practices. Sometimes you have to try and fix an application that has been poorly maintained for years or even decades. Adding dependency injection and inversion of control is a great example of this kind of situation.
Dependency injection removes the need to create instances of services in your code. Instead of having a module of code call the other modules it may need to function Dependency Injection passes those into it from the original caller. This is usually a framework or other higher level code sitting on top of the custom code you write for controlling the flow of your application. In this episode we’ll be talking about how dependency injection works, it’s various parts, the different ways it’s implemented, and finish up discussing some advantages and disadvantages.