Glossary: Software Design Patterns
DIP
Also written: dependency inversion principle, dependency inversion
The SOLID principle that high-level code, like order rules, and low-level details, like printing, should both depend on an interface. You pass the detail in.