Dependency Inversion Principle
DIP
Kind: principle
Layer: Structural Core
Aliases: DIP, Dependency Inversion Principle
Record: architecture:dependency-inversion
Severity: mandatory
Scope: module, component, layer
Canonical: Ontology
A design rule that high-level policy and low-level detail both depend on an abstraction owned by the policy.
Listed in Architecture principles, after Interface Segregation Principle (ISP) and before Open/Closed Principle (OCP).
Requires
Reinforces
Enables
Conflicts with
In tension with
- Runtime Indirection
- Service Locator Pattern
- Service Locator Pattern / Dependency Inversion Principle (DIP)
Tensions
Violated by
Refactored by
Severity
Category
Enforced by
Reinforced by
Linked from
- The direction axis
- The structural domain
- Anti-patterns
- Contracts / Interfaces / Compatibility
- Correctness / Determinism / Verification
- Core Modular Design
- Plugin / Extensibility / IoC
- Codebase / System Architecture Styles
- Codebase / System Architecture Styles
- Core Vocabulary
- SOLID / Object-Oriented Design
- Severity levels
- The resolutions