Posts tagged: Zend_Cache

Quick Start symfony DI (Dependency Injection) bemutatója

A , szombat 14 augusztus 2010 14:21

Mi Dependency Injection (DI)?

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 a szükséges objektumokat használatra 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) {
         / / Kell 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 mondta, hogy szorosan kapcsolódik a DecisionParameters objektumot. Átírta a fenti egy lazán csatolt módon leszünk valami hasonló van ....

  <? 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 kódot adunk hozzá a komplexitás, hogy minden egyes alkalommal, amikor egy objektum példánya 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' => 'gyenge', 'return' => 'magas')); 

Most válik:

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

Ez a helyzet egyre fájdalmasabb, mint a függőségek számát, egy osztály növekszik, és mi van, ha a függőségek maguknak 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ó konténerek (vagy keretek) ...
Folytatódik olvasó "Quick Start symfony DI (Dependency Injection) Tutorial" »













Panoráma Theme Themocracy

6 online látogató jelenleg
6 vendég, 0 botoktól, 0 tag
Max. látogatók ma: 16 at 07:36 am UTC
Ebben a hónapban: 16 éves 2012/01/05 13:02 UTC
Ebben az évben: 69 at 09:56 am UTC 27-02-2012
Minden idő: 130 28-03-2011 at 10:40 UTC