Dependency Injection
Dependency Injection is a software design pattern where a class or a component receives its dependencies from an external source instead of creating them directly or depending on some global state variable
Example: In Java instead of creating Java objects using new keyword we can use @Autowired annotation for creating objects via dependency injection