El principio de inversión de dependencia establece que los módulos de alto nivel, cuando dependen de módulos de bajo nivel, deben hacerlo mediante abstracciones, como interfaces, en vez de depender directamente, de tal manera que una clase de alto nivel no esté acoplada con una implementación concreta de una faceta...