Kategooria: Sõltuvus Injection Container

Quick Start Symfony DI (Sõltuvus Injection) Õpik

Autor , laupäev 14. august 2010 14:21

Mis on Sõltuvus Injection (DI)?

Sõltuvus süst on meetod, mis võimaldab nõrgalt sidestatud objektide tarkvara rakendus. Üldiselt kui objekt nõuab juurdepääsu funktsionaalsust teine ​​oleks instantiated sisemiselt viib tihedalt sidestatud süsteemid. Rakendades sõltuvust süsti me Süstida vajalik objektide kasutamiseks valmis (mõnikord nimetatakse ka inversioon kontroll - ROK). Võtke järgmine näide:

  <? Php
 klassi DecisionMaker {
     avaliku funktsiooni makeDecision (massiiv $ parameetrid) {
         / / Vajad andmebaasi adapter
         $ Dp = new DecisionParameters ();
         $ ParameterScore = $ dp-> getScore ($ parameetrid);
         / * ...  Mõned rohkem otsuseid loogika ...  * /
         return ($ parameterScore> 50);
     }
 } 

See tükk kood on väidetavalt tihedalt sidestatud DecisionParameters objekti. Ümberkirjutamine eespool nõrgalt sidestatud mood me tahaks olla midagi sellist ....

  <? Php
 klassi DecisionMaker {
     Privaatsõnumite $ _dp;
     avaliku funktsiooni __construct ($ dp) {
         $ This-> _dp = $ dp;
     }
     avaliku funktsiooni makeDecision (massiiv $ parameetrid) {
         $ ParameterScore = $ this-> _dp-> getScore ($ parameetrid);
         / * ...  Mõned rohkem otsuseid loogika ...  * /
         return ($ parameterScore> 50);
     }
 } 

Kuigi võitmas kasu nõrgalt sidestatud kood lisame keerukust selline, et iga kord, kui objekt on instantiated meil on ka instantiate oma sõltuvuste ja läbivad need liiga. Näiteks selline:

  $ Valik = new DecisionMaker ();
 echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'kõrge')); 

nüüd on:

  $ Dp = new DecisionParameters ();
 $ Valik = new DecisionMaker ($ dp);
 echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'kõrge')); 

See olukord muutub valusam kui mitu sõltuvused klassi tõus, mis siis, kui sõltuvused ise on sõltuvused? See võib üsna kiiresti muutuda objekti haldamine õudusunenägu! Enter sõltuvust süsti mahutid (või raamistike) ...
Jätka lugemist "Quick Start Symfony DI (Sõltuvus Injection) Õpik" »













Panorama Theme by Themocracy

9 külastajaid online praegu
6 külalist, 3 bots, 0 liiget
Max Külastusi täna: 16 kell 12:59 UTC
See kuu: 19 at 19-08-2011 06:09 UTC
Sel aastal: 130 at 28-03-2011 22:40 UTC
Kõik kokku: 130 at 28-03-2011 10:40 UTC