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 ...
A few weeks ago, I wrote about how a good software team will defer decisions as long as possible. Smart teams will design and build systems that don’t lock them into any particular implementation ...