DIP

E811521

DIP is a key object-oriented design principle that promotes decoupling by having high-level modules depend on abstractions rather than concrete implementations.

All labels observed (1)

Label Occurrences
DIP canonical 1

How this entity was disambiguated

Statements (48)

Predicate Object
instanceOf object-oriented design principle ⓘ
abbreviationOf Dependency Inversion Principle ⓘ
aimsTo improve architectural robustness ⓘ
separate policy from implementation details ⓘ
alsoKnownAs Dependency Inversion ⓘ
appliesTo high-level policy modules ⓘ
low-level detail modules ⓘ
assumes availability of stable abstractions ⓘ
category design principle ⓘ
software engineering principle ⓘ
contrastsWith direct dependency on concrete classes ⓘ
documentedIn Agile Software Development, Principles, Patterns, and Practices ⓘ
Clean Architecture ⓘ
enables easier unit testing via mocking abstractions ⓘ
encourages programming to interfaces ⓘ
use of abstractions ⓘ
fullName Dependency Inversion Principle ⓘ
oftenIllustratedWith layered architecture examples ⓘ
plugin-based architectures ⓘ
originatedIn object-oriented design literature ⓘ
partOf SOLID principles ⓘ
primaryGoal decoupling high-level and low-level modules ⓘ
promotes flexibility ⓘ
loose coupling ⓘ
maintainability ⓘ
modularity ⓘ
testability ⓘ
proposedBy Robert C. Martin ⓘ
reduces coupling to concrete implementations ⓘ
ripple effects of changes in low-level modules ⓘ
relatedTo Dependency Injection ⓘ
Interface Segregation Principle ⓘ
Inversion of Control ⓘ
Open/Closed Principle ⓘ
Service Locator pattern ⓘ
states abstractions should not depend on details ⓘ
both high-level and low-level modules should depend on abstractions ⓘ
details should depend on abstractions ⓘ
high-level modules should not depend on low-level modules ⓘ
supports hexagonal architecture ⓘ
onion architecture ⓘ
typicalMechanism constructor injection ⓘ
dependency injection containers ⓘ
factory patterns ⓘ
setter injection ⓘ
usedIn enterprise application design ⓘ
object-oriented programming ⓘ
software architecture ⓘ

How these facts were elicited

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.