1. 程式人生 > >依賴注入的幾種形式及場景

依賴注入的幾種形式及場景

1、依賴的自動注入

只需要在需要的位置注入你需要的依賴,執行容器時,會自動解析依賴(包括子依賴)

2、依賴的單例注入

比如 WEB 框架中 的 Request 依賴,需要跟蹤整個路由的響應週期,這就需要保持全域性的單例依賴

3、依賴的契約注入

比如我們依賴 Storage,前期可能使用 FileStorage ,後期發現效能瓶頸需要使用 RedisStorage , 這時候就可以使用 Storage 介面做為契約,將具體的實現類 FileStorage/RedisStorage 通過容器繫結機制關聯到 Storage 上(依賴注入 Storage),這樣如果需要修改儲存引擎,只需要修改繫結即可

4、標量引數關聯傳值

參照 Python 的傳值風格,PHP 預設是不支援這種方式的,如下

function hello($name = 'john', $value)
{
    echo $name . ' say ' . $value;
}

// php 中呼叫
// hello('john', 'hello world');
// python 中呼叫 (請不要考究上述函式程式碼(PHP程式碼))
// hello(value = 'hello world')