- Abstractions should not depend upon details
- Details should not depend upon abstractions
- Important that higher level and lower level objects depend on the same abstract interaction
- This is not the same as Dependency Injection – which is how objects obtain dependent objects