Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2005-05-05 01:04:00
Size: 955
Editor: G9389
Comment:
Revision 5 as of 2013-11-23 13:37:52
Size: 1457
Comment: Spam
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
The Dependency Injection Pattern, is described in [http://www.martinfowler.com/articles/injection.html Martin Fowler's article]. It is closely related to the DependencyInversionPrinciple and the so called Inversion of Control (IoC) containers. The Dependency Injection Pattern, is described in [[http://www.martinfowler.com/articles/injection.html|Martin Fowler's article]]. It is closely related to the DependencyInversionPrinciple and the so called Inversion of Control (IoC) containers.
Line 12: Line 12:
It is quite a challenge to implement an IoC container for statically typed languages. In python, however, the core concepts can be implemented quite easily. [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/413268 DependencyInjectionThePythonWay] describes how. It is quite a challenge to implement an IoC container for statically typed languages. In python, however, the core concepts can be implemented quite easily. [[http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/413268|DependencyInjectionThePythonWay]] describes how.

== See Also ==

[[http://peak.telecommunity.com/DevCenter/InversionOfControl|PEAK:InversionOfControl]] -- Inversion of Control is a more general concept (small components relinquishing control, or networking control, rather than maintaining it internally,) but the name was overloaded historically to mean what is named by DependencyInjectionPattern. [[PEAK]] makes use of dependency injection, and the larger meaning of "Inversion of Control." The target page describes dependency injection.

Dependency Injection Pattern

The Dependency Injection Pattern, is described in Martin Fowler's article. It is closely related to the DependencyInversionPrinciple and the so called Inversion of Control (IoC) containers.

IoC is aimed at loosening the coupling of application components. The key concepts are:

  • Components do not know each other directly.
  • Components specify external dependencies using some kind of a key.
  • Some "superior instance" (the IoC container, for example) resolves the dependencies once for each component and hereby "wires" the components together.

It is quite a challenge to implement an IoC container for statically typed languages. In python, however, the core concepts can be implemented quite easily. DependencyInjectionThePythonWay describes how.

See Also

PEAK:InversionOfControl -- Inversion of Control is a more general concept (small components relinquishing control, or networking control, rather than maintaining it internally,) but the name was overloaded historically to mean what is named by DependencyInjectionPattern. PEAK makes use of dependency injection, and the larger meaning of "Inversion of Control." The target page describes dependency injection.

Discussion

DependencyInjectionPattern (last edited 2013-11-23 13:37:52 by EtienneRobillard)

Unable to edit the page? See the FrontPage for instructions.