Dependency Inversion Principle
Firstly, what is the Dependency Inversion Principle?Definition: One should depend upon abstractions and not concrete instances. Typically in a software application, high level components need to depend on lower level components. If the low level components are ‘hard-coded’ into the high level components this causes two problems. 1. Testability The first problem is testability. It …