* Add custom license header style in order to comply with Google's Checkstyle format * Update license headers to comply with Google's Checkstyle format
layout, title, folder, permalink, categories, tags
layout | title | folder | permalink | categories | tags | ||
---|---|---|---|---|---|---|---|
pattern | Dependency Injection | dependency-injection | /patterns/dependency-injection/ | Behavioral |
|
Intent
Dependency Injection is a software design pattern in which one or more dependencies (or services) are injected, or passed by reference, into a dependent object (or client) and are made part of the client's state. The pattern separates the creation of a client's dependencies from its own behavior, which allows program designs to be loosely coupled and to follow the inversion of control and single responsibility principles.
Applicability
Use the Dependency Injection pattern when
- when you need to remove knowledge of concrete implementation from object
- to enable unit testing of classes in isolation using mock objects or stubs