An Empirical Study into Use of Dependency Injection in Java
design patterns : elements of reusable object - oriented software .