Glossary: Software Design Patterns in Java
Dependency inversion principle (DIP)
Also written: DIP, dependency inversion
The SOLID rule that high-level code and low-level details should both depend on an interface, with the detail passed in. `confirmOrder` depends on `Notifier`, not on printing.