A SOLID design principle that states:
- High level (important) modules should not depend on low-level (no important) modules. Both should depend on abstractions
- Abstractions should not depend on details. Details should depend on abstractions This means that modules with high-level business rules should take precedence over modules that contain implementation details.
Examples