Kategória: Zend_Cache

Quick Start symfony DI (függőség injekció) bemutatója

A , szombat 14 augusztus 2010 14:21

Mi az a függőség injekció (DI)?

A függőség injekció olyan technika, amely lehetővé teszi a lazán csatolt objektumok egy szoftver. Általában, ha egy objektum hozzáférést igénylő funkcióit más lenne példányosítható belsőleg vezető szorosan összekapcsolt rendszerek. A végrehajtási függőség injekció mi adja meg a szükséges tárgyakat kész (néha említett inverzió ellenőrzés - IOC). Vegyük a következő példát:

  <? Php
 class DecisionMaker {
     public function makeDecision (array $ paraméterek) {
         / / Van szüksége az adatbázis adapter
         $ Dp = new DecisionParameters ();
         $ ParameterScore = $ dp-> getScore ($ paraméterek);
         / * ...  Néhány további döntés logikáját ...  * /
         return ($ parameterScore> 50);
     }
 } 

Ez a kódrészlet azt mondják, hogy szorosan kapcsolódik a DecisionParameters objektumot. Átírása a fenti egy lazán összekapcsolt módon is volna valami ilyesmit ....

  <? Php
 class DecisionMaker {
     Privát $ _dp;
     public function __construct ($ dp) {
         $ This-> _dp = $ dp;
     }
     public function makeDecision (array $ paraméterek) {
         $ ParameterScore = $ this-> _dp-> getScore ($ paraméterek);
         / * ...  Néhány további döntés logikáját ...  * /
         return ($ parameterScore> 50);
     }
 } 

Miközben egyre előnyeit lazán csatolt kód vagyunk hozzá összetettsége olyan, hogy minden egyes alkalommal, amikor egy objektum példányosított is meg kell példányosítani a függőségeket, és adja át ezeket is. Például ez:

  $ Választás = new DecisionMaker ();
 echo $ választás-> makeDecision (array ('erőfeszítést' => 'alacsony', 'vissza' => 'jó')); 

Most válik:

  $ Dp = new DecisionParameters ();
 $ Választás = new DecisionMaker ($ dp);
 echo $ választás-> makeDecision (array ('erőfeszítést' => 'alacsony', 'vissza' => 'jó')); 

Ez a helyzet egyre fájdalmasabb, mint a számos függőséget egy osztály nőtt, és mi van, ha a függőségek maguk függőségek? Ez elég hamar egy tárgy adminisztrációs rémálom! Adja meg a függőség injekció tartályok (vagy keretek) ...
Folytatódik olvasó "Quick Start symfony DI (függőség injekció) Tutorial" »













Panorama Theme by Themocracy

5 online látogató jelenleg
4 vendég, 1 botoktól, 0 tag
Max. látogatók ma: 16 at 01:33 UTC
Ebben a hónapban: 17 at 2011/01/09 23:27 UTC
Ebben az évben: 130 at 28-03-2011 22:40 UTC
Minden idő: 130 at 28-03-2011 10:40 UTC