Managing Dependencies during Runtime
Sprecher: Tobias Kister
No matter what the application architecture looks like, in object oriented language we always deal with a graph of interconnected instances of objects - i.e. dependencies.
Dependencies can be explicit, by creating instances exactly where they are used. Or they can be created in advance and injected from the outside. The latter option is known as dependency injection or inversion of control.
It allows us to easily replace the dependency to be injected with another implementation, giving us a more flexible architecture and making our unit testing life a lot easier.
This fundamental concept can be found in a lot programming languages. In Java popular frameworks feautring dependency injection are Spring and Guice.
In this session we will take a look at these frameworks and compare their usage against the manual application of the core concept. We will analyse how tight the coupling between the pattern and the tooling really is.