We will start by defining what is the DI pattern and what is a good use-case for such a pattern. The main goal of this pattern is disconnecting the client from the knowledge of how to construct a service or an object it needs and letting someone else handle the construction (aka - Injector).