An introduction to Dependency Injection.