The idea of the Dependency Inversion Principle is: High-level modules, which provide complex logic, should be easily reusable.