Dependency Injection (DI), which allows you to inject objects into a class, rather than relying on the class to create the object itself.
Dependency Injection is a worthwhile concept to explore for use within apps that you develop. Not only can it reduce coupling between components, but it also saves writing boilerplate factory creation code over and over again.
better understanding : http://msdn.microsoft.com/en-us/magazine/cc163739.aspx