Post tag: xml

Mabilis na Pagsisimula Symfony Di (dependency inyeksyon) Tutorial

, Sabado ika-14 Agosto 2010 14:21

Ano ang dependency iniksyon (Di)?

Dependency iniksyon ay isang pamamaraan na nagbibigay-daan para sa maluwag na kaisa bagay sa loob ng isang application software. Pangkalahatan na kung ang isang bagay ay nangangailangan ng access sa functionality ng ibang ito instantiated sa nangungunang loob sa mga mahigpit kaisa system. Sa pamamagitan ng pagpapatupad ng iniksyon ng dependency namin paturukan ng mga kinakailangang bagay handa para sa paggamit (minsan din-refer sa pagbabaligtad ng control - IOC). Dalhin ang mga sumusunod na halimbawa:

  <? Php
 klase DecisionMaker {
     pampublikong na pagpapaandar makeDecision (array $ parameter) {
         / / Kailangan ng database adaptor
         $ Dp = bagong DecisionParameters ang ();
         $ ParameterScore = $ dp-> getScore ($ parameter);
         / * ...  Ilang higit na lohika desisyon ...  * /
         return ($ parameterScore> 50);
     }
 } 

Ang piraso ng code na ito ay sinabi na mahigpit kaisa sa bagay DecisionParameters. Muling pagsusulat ng sa itaas sa isang maluwag kaisa fashion gusto naming magkaroon ng isang bagay tulad ng ....

  <? Php
 klase DecisionMaker {
     pribadong $ _dp;
     pampublikong function na __ tayuan ($ dp) {
         $ Ito-> _dp = $ dp;
     }
     pampublikong na pagpapaandar makeDecision (array $ parameter) {
         $ ParameterScore = $ ito-> _dp-> getScore ($ parameter);
         / * ...  Ilang higit na lohika desisyon ...  * /
         return ($ parameterScore> 50);
     }
 } 

Habang ang pagkakaroon ng mga benepisyo ng maluwag kaisa code namin ay pagdaragdag sa kumplikado tulad na ang oras sa bawat bagay ng isang instantiated din namin upang magbigay ng halimbawa nito mga dependencies at pumasa ito sa masyadong. Halimbawa, ito:

  $ Pagpipilian = bagong DecisionMaker ();
 alingawngaw $ pinili-> makeDecision (array ('pagsusumikap' => 'mababa', 'return' => 'mataas')); 

ngayon ay magiging:

  $ Dp = bagong DecisionParameters ang ();
 $ Pagpipilian = ng bagong DecisionMaker ($ dp);
 alingawngaw $ pinili-> makeDecision (array ('pagsusumikap' => 'mababa', 'return' => 'mataas')); 

Ang sitwasyon na ito ay magiging mas masakit na ang bilang ng mga dependencies para sa isang klase ay nadagdagan, at kung ano kung ang mga mga dependencies may kanilang sarili dependencies? Ito ay maaaring masyadong mabilis maging isang bagay na pangangasiwa ng bangungot! Magpasok ng dependency iniksyon lalagyan (o frameworks) ...
Magpatuloy sa pagbabasa 'Quick Start Symfony Di (dependency iniksyon) Tutorial' »













Panorama Tema sa pamamagitan ng Themocracy

4 mga bisita sa online ngayon
3 mga bisita, 1 bot, 0 miyembro
Max mga bisita ngayon: 12 sa 04:38 am UTC
Sa buwang ito: 45 sa 24-04-2012 05:22 pm UTC
Ito taon: 69 sa 27-02-2012 09:56 am UTC
Lahat ng oras: 130 sa 28-03-2011 10:40 pm UTC