Dependency Injection is a technique that decouples an object’s usage from it’s creation, by making the object receive the required entity rather than creating them internally.

The technique is useful to keep code in line with Dependency Inversion Principle