Dependency Inversion Principle:: DIP using abstraction layer in code to reduce code dependencies.
As per DIP the way of designing a class structure is to start from high level Classes to Low Level Classes
This means that your high level classes or modules should use the interfaces of low level classes or modules instead of working with them directly, it is Standard coding structure as per SDLC
High level classes or modules should should not use direct level classes or modules directly, it is bad coding structure