Its nothing but the Inversion of Control, where the tightly coupled objects are made as loosely coupled and individually maintainable.
DI or Dependency Injection is a software design pattern that deals with how code gets hold of its dependencies. In order to retrieve elements of the application which is required to be configured when module gets loaded , the operation “config” uses dependency injection.These are the ways that object uses to hold of its dependenciesTypically using the new operator, dependency can be created By referring to a global variable, dependency can be looked up Dependency can be passed into where it is required