The Dependency Inversion Principle says "the interface belongs to the client." As I've said elsewhere, adopting this principle means a reversing of the way applications used to be built: Design the ...
Take advantage of the dependency injection principle to provide support for pluggable implementations in your application and build loosely coupled, testable components The Dependency Inversion ...