Kategorija: Kontenitur injezzjoni Dipendenza

Quick Start Symfony DI (Injezzjoni Dipendenza) Tutorial

Permezz , is-Sibt 14 Awi 2010 14:21

X'inhu l-injezzjoni Dipendenza (DI)?

Injezzjoni Id-dipendenza hija teknika li tippermetti għal oġġetti laxk flimkien fi ħdan applikazzjoni ta 'softwer. Ġeneralment jekk oġġett tesiġi l-aċċess għall-funzjonalità tal ieħor ikun instantiated internament li jwasslu għal sistemi marbutin strettament. Bl-implimentazzjoni injezzjoni dipendenza aħna injetta l-oġġetti meħtieġa lest għall-użu (xi kultant imsejħa wkoll l-inverżjoni ta 'kontroll - IOC). Ħu l-eżempju li ġej:

  <? PHP
 klassi DecisionMaker {
     pubbliku funzjoni makeDecision (firxa $ parametri) {
         / / Ħtieġa l-adapter database
         $ Dp = ġdid DecisionParameters ();
         $ = $ ParameterScore dp-> getScore ($ parametri);
         / * ...  Loġika ftit aktar id-deċiżjoni ...  * /
         ritorn ($ parameterScore> 50);
     }
 } 

Din il-biċċa tal-kodiċi jingħad li hu sewwa flimkien l-oġġett DecisionParameters. Kitba mill-ġdid ta 'hawn fuq b'mod laxk flimkien Wed għandhom xi ħaġa bħal ....

  <? PHP
 klassi DecisionMaker {
     privati ​​$ _dp;
     pubbliku funzjoni __construct ($ DP) {
         $ Dan il-> _dp = $ dp;
     }
     pubbliku funzjoni makeDecision (firxa $ parametri) {
         $ = $ ParameterScore dan-> _dp-> getScore ($ parametri);
         / * ...  Loġika ftit aktar id-deċiżjoni ...  * /
         ritorn ($ parameterScore> 50);
     }
 } 

Filwaqt li jiksbu l-benefiċċji tal-kodiċi laxk flimkien aħna żżid tali komplessità li kull darba l-oġġett huwa instantiated irridu wkoll li instantiate dipendenzi tagħha u tgħaddi dawn fl wisq. Per eżempju, dan:

  $ = Għażla DecisionMaker ġodda ();
 eku $ għaŜla> makeDecision (array ("l-isforz '=>" baxxa "," ritorn "=>" għolja ")); 

issa jsir:

  $ Dp = ġdid DecisionParameters ();
 $ = Għażla ġdida DecisionMaker ($ DP);
 eku $ għaŜla> makeDecision (array ("l-isforz '=>" baxxa "," ritorn "=>" għolja ")); 

Din is-sitwazzjoni ssir iktar diffiċli bħala n-numru tad-dipendenzi għal klassi tiżdied, u jekk dak il-dipendenzi nfushom dipendenzi? Dan jista 'pjuttost malajr sar ħmarillejl amministrazzjoni oġġett! Ikteb injezzjoni kontenituri dipendenza (jew oqfsa) ...
Kompli qari "Quick Start Symfony DI (Injezzjoni Dipendenza) Tutorial" »













Tema panorama mill- Themocracy

9 viżitaturi online issa
2 mistednin, 7 bot, 0 membri
Max viżitaturi llum: 19 fi 06:09 UTC
Dan ix-xahar: 19 fi 19-08-2011 06:09 UTC
Din is-sena: 130 fuq 28-03-2011 10:40 pm UTC
Il-ħin kollu: 130 fuq 28-03-2011 10:40 pm UTC