理解 laravel 中的 控制反轉模式

Ioc (Inversion of Control) 控制反轉模式 又稱 (Depe-ndency Injection)依賴注入模式

控制反轉是將組件的依賴關係從程序內部提到程序外部來管理,而依賴注入是指組件的依賴通過外部以參數或其它形式注入

下面我將以一個簡單的例子來演示什麼是 Ioc 控制反轉

<?php

interface Visit
{
    public function go();
}

class Leg implements Visit       //行走接口
{
    public function go()
    {
        // TODO: Implement go() method.
        echo "walt to Tibet!!!";
    }
}

class Car implements Visit         //汽車接口
{
    public function go()
    {
        // TODO: Implement go() method.
        echo "drive car to Tibet!!!";
    }

}

class Train implements Visit        //火車接口
{
    public function go()
    {
        // TODO: Implement go() method.
        echo "go to Tibet by train";
    }
}


class Traveller                  // 旅行者類
{
    protected $trafficTool;

    public function __construct(Visit $trafficTool)
    {
        $this->trafficTool = $trafficTool;
    }

    public function visitTibet()
    {
        $this->trafficTool->go();
    }
}


$tra = new Traveller(new Car());

$tra->visitTibet();Traveller 類的構造函數依賴了一個外部的具有visit接口的實例,而實例化Traveller時,我們傳遞了一個 $trafficTool 實例, 即通過依賴注入的方法解決依賴
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章