Dependency Inversion Principle (The "D" of SOLID Programming Principles)