Dependency Inversion Principle