Dependency injection is certainly one of the most effective design patterns for writing clean, maintainable and testable code.
For these reasons it's been very popular over the past few years and a number of libraries/frameworks have been created to provide support for dependency injection.
The most...