Dependency Inversion Principle(DIP): This principle suggests that below two points. 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.