亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

annuaire recherche
personnages

我們可以用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明依賴注入的概念

下面的代碼中有一個(gè) Database 的類,它需要一個(gè)適配器來(lái)與數(shù)據(jù)庫(kù)交互。我們?cè)跇?gòu)造函數(shù)里實(shí)例化了適配器,從而產(chǎn)生了耦合。這會(huì)使測(cè)試變得很困難,而且 Database 類和適配器耦合的很緊密。

<?php 
namespace Database; 
class Database {     
protected $adapter;     
public function __construct(){
     $this->adapter = new MySqlAdapter;     
     } 
 } 
 class MysqlAdapter {
 }

這段代碼可以用依賴注入重構(gòu),從而解耦

<?php 
namespace Database; 
class Database {     
protected $adapter;     
public function __construct(MySqlAdapter $adapter){         
$this->adapter = $adapter;     
} 
} 
class MysqlAdapter {
}

現(xiàn)在,我們以參數(shù)的形式向 Database 類傳遞其依賴的對(duì)象,而不是讓它自己產(chǎn)生所依賴的對(duì)象。我們甚至可以創(chuàng)建一個(gè)方法(method),讓這個(gè)方法可以接受依賴對(duì)象作為參數(shù)并在內(nèi)部設(shè)置依賴關(guān)系,或者,如果 $adapter 屬性本身是 public 的,我們可以直接給它賦值。


Article précédent: Article suivant: