Image may be NSFW.
Clik here to view.
Clik here to view.

Definition
Precisely, Wikepedia says
Dependency injection is a software design pattern that allows a choice of component to be made at run-time rather than compile time. This can be used, for example, as a simple way to load plugins dynamically or to choose mock objects in test environments vs. real objects in production environments.
Let’s break the term to understand it further.
What is Dependency? What is Injection?”
Assignment of a instance variable to a reference is dependency injection. The...