Dependency injection (DI) is an implementation of the dependency inversion principle with the aim of separation of concerns by separating the depndency's implementation from the class that's using it. That kind of abstraction makes it possible to have different implementations with the same public methods so the class using it, doesn't need to care which of the implementations is used. This is also especially useful for unit testing.
There are different types of dependency injection:
Created by Martin Fowler
发布于 January 23, 2004