Dependency Injection is a common technique in Software Engineering where instead of your objects creating dependency or creating one via factory, you pass the dependencies into the object externally. Sounds confusing yet? Good. I will explain further.
A Simple Example
Consider this example of querying products from a repository: