Dependency Injection for loose coupling of objects
Object oriented software may involve a number of objects that are closely coupled, making it very cumbersome for efficient software testing due to dependencies. Managing and keeping track of lifetimes of various objects becomes a difficult task. Dependency Injection is a design pattern that introduces dependency at interface levels .Configuration information of the objects wired together is maintained separately and this information can be changes at runtime. Dependency Injection technique helps in designing software with loosely coupled objects thus provides a better object oriented design.