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

??

我們可以用一個簡單的例子來說明依賴注入的概念

下面的代碼中有一個 Database 的類,它需要一個適配器來與數(shù)據(jù)庫交互。我們在構(gòu)造函數(shù)里實(shí)例化了適配器,從而產(chǎn)生了耦合。這會使測試變得很困難,而且 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 類傳遞其依賴的對象,而不是讓它自己產(chǎn)生所依賴的對象。我們甚至可以創(chuàng)建一個方法(method),讓這個方法可以接受依賴對象作為參數(shù)并在內(nèi)部設(shè)置依賴關(guān)系,或者,如果 $adapter 屬性本身是 public 的,我們可以直接給它賦值。


?? ??: ?? ??: