首頁 > 後端開發 > php教程 > Yii源碼解讀-服務定位器(Service Locator)

Yii源碼解讀-服務定位器(Service Locator)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-07-29 08:57:50
原創
975 人瀏覽過

SL的目的也是解耦,並且非常適合基於服務和元件的應用。

Service Locator扮演了一個運行時的連結器的角色,可以在運行時動態地修改一個類別所要選用的服務, 而不必對類作任何的修改。

一個類別可以在運作時,有針對性地增減、替換所要用到的服務,從而得到一定程度的最佳化。

實作服務提供者、服務使用方完全的解耦,方便獨立測試和程式碼跨框架重複使用。

基本功能

Yii中的SL由yiidiServiceLocator實作

<code>class ServiceLocator extends Component{
    // 用于缓存服务、组件等的实例
    private $_components = [];
    
    // 保存服务和组件的定义,通常为配置数组,可以用来创建具体的实例
    private $_definitions = [];
    
    // 重载了getter, 使得访问服务和组件与访问类的属性一样。
    // 保留了原来Component的getter所具有的功能
    public function __get($name){}
}</code>
登入後複製

資料結構

SL提供了註冊服務和元件的方法。

$_components用於快取SL中的元件或服務的實例,為可讀寫的屬性。

參考

以上就介紹了Yii原始碼解讀-服務定位器(Service Locator),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板