Quick Start Symfony DI (Sõltuvus Injection) Õpik
Mis on sõltuvust süsti (DI)?
Sõltuvust süsti on tehnika, mis võimaldab nõrgalt sidestatud objektide tarkvaraga. Üldiselt, kui objekt nõuab juurdepääsu funktsionaalsust teine oleks konkretiseerita sisemiselt viib tihedalt sidestatud süsteemid. Rakendades sõltuvust süsti me süstida nõutud esemeid kasutusvalmis (mõnikord nimetatakse ka inversioon kontroll - ROK). Võtke järgmine näide:
<? Php klassi DecisionMaker { avalikke ülesandeid makeDecision (array $ parameetrid) { / / Vajadus andmebaasi adapter $ Dp = new DecisionParameters (); $ ParameterScore = $ dp-> getScore ($ parameetrid); / * ... Veel otsust loogika ... * / return ($ parameterScore> 50); } }
See tükk kood on väidetavalt tihedalt ühendatud DecisionParameters objekt. Ümberkirjutamine eespool nõrgalt sidestatud mood me tahaks olla midagi ....
<? Php klassi DecisionMaker { era $ _dp; avalik funktsioon __ konstruktsioon ($ dp) { $ This-> _dp = $ dp; } avalikke ülesandeid makeDecision (array $ parameetrid) { $ ParameterScore = $ this-> _dp-> getScore ($ parameetrid); / * ... Veel otsust loogika ... * / return ($ parameterScore> 50); } }
Kuigi üha kasu nõrgalt sidestatud kood lisame keerukust selline, et iga kord, kui objekt on instantiated meil on ka instantiate oma sõltuvusi ja andke need ka. Näiteks selline:
$ Valik = new DecisionMaker (); echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'suur'));
nüüd on:
$ Dp = new DecisionParameters (); $ Valik = new DecisionMaker ($ dp); echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'suur'));
Selline olukord muutub valulikuks, kui mitu sõltuvused klassi suurendatakse, ja mis siis, kui sõltuvused ise on sõltuvused? See võib üsna kiiresti muutuda objekti haldamine õudusunenägu! Sisesta sõltuvust süsti konteinereid (või raamistike) ...
Jätka lugemist "Quick Start Symfony DI (Sõltuvus Injection) Õpik" »

















































