Differences between revisions 1 and 2
Revision 1 as of 2005-05-05 01:04:00
Size: 955
Editor: G9389
Comment:
Revision 2 as of 2005-05-05 17:50:39
Size: 1451
Editor: 71-35-154-104
Comment: simply must have a reference to PEAK {:)}=
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
== 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 [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.

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. [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.

Discussion

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

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