Dependency Injection is to reduce tight coupling
The Dependency Injection pattern is a particular implementation of Inversion of Control.
Inversion of Control (IoC) means that objects do not create other objects on which they rely to do their work. Instead, they get the objects that they need from an outside source
Advantages of using Dependency Injection pattern and Inversion of Control are the following:
Reduces class coupling,Increases code reusing,Improves code maintainability,Improves application testing