91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP依賴注入的案例

發布時間:2020-10-28 21:39:26 來源:億速云 閱讀:140 作者:小新 欄目:編程語言

PHP依賴注入的案例?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

依賴注入

傳統的思路

應用程序用到一個Foo類,就會創建Foo類并調用Foo類的方法。
假如這個方法內需要一個Bar類,就會創建Bar類并調用Bar類的方法。
而這個方法內需要一個Bim類,就會創建Bim類,接著做些其它工作。

/**
*  Foo
*/
class Foo 
{

    public function doSomething($value='')
    {
        # code...
        $Bar = new Bar();
        $Bar->doSomething();
        echo 'Foo doSomething','<br />' ;
    }
}

/**
*  Bar
*/
class Bar 
{
    

    public function doSomething($value='')
    {
        # code...
        $Bim = new Bim();
        $Bim->doSomething();
        echo 'Bar doSomething','<br />' ;
    }
}

/**
* Bim
*/
class Bim
{
    

    public function doSomething($value='')
    {
        # code...
        echo 'Bim doSomething','<br />'  ;
    }
}

$doSomething = new Foo();
$doSomething->doSomething();

依賴注入

應用程序用到Foo類,Foo類需要Bar類,
 Bar類需要Bim類,那么先創建Bim類,再創建Bar類并把Bim注入,再創建Foo類,并把Bar類注入,
 再調用Foo方法,Foo調用Bar方法,接著做些其它工作。

/**
* Bim2
*/
class Bim2 
{
    
    public function doSomething($value='')
    {
        # code...
        echo 'Bim2 doSomething','<br />' ;
    }

}

/**
*  Bar2
*/
class Bar2
{

    private $bim2 ;

    public function __construct(Bim2 $bim2)
    {
        # code...
        $this->bim2 = $bim2 ;
    }

    public function doSomething($value='')
    {
        # code...
        $this->bim2->doSomething();
        echo "Bar2 doSomething",'<br />';
    }
}

/**
* Foo
*/
class Foo2
{
    
    private $bar2 ;
    public function __construct(Bar2 $bar2)
    {
        # code...
        $this->bar2 = $bar2 ;
    }

    public function doSomething($value='')
    {
        # code...
        $this->bar2->doSomething();
        echo "Foo2 doSomething",'<br />';
    }
}

$doSomething2 = new Foo2(new Bar2(new Bim2()));
$doSomething2->doSomething();

這就是控制反轉模式。依賴關系的控制反轉到調用鏈的起點。這樣你可以完全控制依賴關系,通過調整不同的注入對象,來控制程序的行為。
例如Foo類用到了memcache,可以在不修改Foo類代碼的情況下,改用redis
使用依賴注入容器后的思路是應用程序需要到Foo類,就從容器內取得Foo類,容器創建Bim類,再創建Bar類并把Bim注入,再創建Foo類,并把Bar注入,應用程序調用Foo方法,Foo調用Bar方法,接著做些其它工作.

擴展:容器負責實例化,注入依賴,處理依賴關系等工作。

感謝各位的閱讀!看完上述內容,你們對PHP依賴注入的案例大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

木里| 连云港市| 五河县| 博湖县| 平邑县| 怀化市| 烟台市| 拜泉县| 巨野县| 商都县| 浦县| 乐亭县| 宜昌市| 长治县| 义马市| 锡林郭勒盟| 松江区| 沐川县| 木里| 喀喇沁旗| 澄迈县| 怀仁县| 漯河市| 渝中区| 玛沁县| 加查县| 红河县| 和平县| 正安县| 获嘉县| 会理县| 镇平县| 靖宇县| 曲沃县| 喀什市| 潮安县| 建昌县| 吴旗县| 开封县| 贵德县| 舞钢市|