Dependency injection is a coding pattern in which a class receives its dependencies from external sources rather than creating them itself. It is an important application design pattern. Angular has its own dependency injection framework, which help us to make our applications flexible, efficient, modular, robust, testable, and maintainable. Dependencies are services or objects that a class needs to perform its function. In Angular, the dependency injection framework provides declared dependencies to a class when that class is instantiated.