Dependency injection is one form of the broader technique of inversion of control (SOLID – Dependency inversion principles). In software, There should be less coupling between component and cohesion should be high. High level module should not depend on low level modules rather should depend on Abstraction.
Read More