What is Dependency Inversion Principle?
The Dependency Inversion Principle (DIP) states that:
High-level modules should not depend on low-level modules. Both should
depend on abstractions.
Abstractions should not depend on details. Details should depend on
abstractions.
In other words:
- High-level business logic shouldn't depend on concrete implementations.
- Instead, both high- and low-level components should depend on interfaces or
abstract classes.