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 ...
Developers typically use field injection only on small projects and prototypes, due to its inability to support immutable variables and the incompatibilities it creates with many testing frameworks.