Das Dependency Inversion Principle (DIP, englisch für Abhängigkeits-Umkehr-Prinzip) ist ein Prinzip beim objektorientierten Entwurf von Software. Es beschäftigt sich mit der Abhängigkeit von Modulen.
Im Allgemeinen wird das DIP beschrieben durch:
Module höherer Ebenen sollten nicht von Modulen niedrigerer Ebenen abhängen. Beide sollten von Abstraktionen abhängen.
Abstraktionen sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.