亚洲综合在线一区二区三区-日韩超碰人人爽人人做人人添-麻豆国产精品久久人妻-无码人妻丰满熟妇啪啪-天堂精品一区二区三区-99久久综合狠狠综合久久aⅴ

×
新網 > 云服務器 > 正文

淺談PHP如何實現依賴注入(一)

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-05-10 18:04:05

依賴注入(Dependency Injection,簡稱DI)又稱控制反轉(Inversion of Control,簡稱IOC),在目前的主流框架中,如ThinkPHP、Laravel等都有實現。什么是依賴注入呢?今天就讓小編為大家講解一下依賴注入的相關知識吧。

 依賴注入(Dependency Injection,簡稱DI)又稱控制反轉(Inversion of Control,簡稱IOC),在目前的主流框架中,如ThinkPHP、Laravel等都有實現。什么是依賴注入呢?今天就讓小編為大家講解一下依賴注入的相關知識吧。

<div
舉個簡單的例子:
002UASMrzy7605pjKJv15&690.jpg
 
(1)原始社會里,幾乎沒有社會分工。需要斧子的人(調用者)只能自己去磨一把斧子(被調用者)。
 
(2)進入工業社會,工廠出現。斧子不再由普通人完成,而在工廠里被生產出來,此時需要斧子的人(調用者)找到工廠,購買斧子,無須關心斧子的制造過程。
 
(3)進入“按需分配”社會,需要斧子的人不需要找到工廠,坐在家里發出一個簡單指令:需要斧子。斧子就自然出現在他面前。
 
第一種情況下,實例的調用者創建被調用的實例,必然要求被調用的類出現在調用者的代碼里。無法實現二者之間的松耦合。
 
第二種情況下,調用者無須關心被調用者具體實現過程,只需要找到符合某種標準(接口)的實例,即可使用。此時調用的代碼面向接口編程,可以讓調用者和被調用者解耦,這也是工廠模式大量使用的原因。但調用者需要自己定位工廠,調用者與特定工廠耦合在一起。
 
第三種情況下,調用者無須自己定位工廠,程序運行到需要被調用者時,依賴注入容器自動提供被調用者實例。事實上,調用者和被調用者都處于依賴注入容器的管理下,二者之間的依賴關系由依賴注入容器提供。因此調用者與被調用者的耦合度進一步降低,這使得應用更加容易維護,這就是依賴注入所要達到的目的。
 
在PHP中如何實現依賴注入呢?
 
依賴注入在現在的編程中,有著比較突出的優勢,這也是ThinkPHP、Laravel等框架,使用此編程思想的原因。那么這些框架到底是如何使用PHP去實現的呢?
 
下面我們使用一個簡單的案例,來說說其中的奧秘。
 
首先我們創建一個類,看起來是這樣的,包含一個屬性和兩個方:
 
假設我們現在有另外兩個類,redisDB和cache,redisDB提供一個redis數據庫的操作,cache負責緩存功能的實現并且依賴于redisDB。在上面這個類中我們簡單實現了redis的查詢、保存和刪除。另一個類和當前這個類結構很像:
 

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 成年男女免费视频网站| 丰满女邻居的嫩苞张开视频| 中文亚洲av片在线观看不卡| 国产男女爽爽爽免费视频| 无码一区二区三区免费| 强制高潮18xxxxhd日韩| 亚洲人成电影网站色www两男一女| 国产一性一交一伦一a片| 柠檬福利第一导航在线| 国产精品多人p群无码| 尤物一区二区三区精品| 亚洲综合一区二区视频在线| 亚洲国产一区二区三区在观看| 日韩一级片一区二区| 久久天天躁狠狠躁夜夜爽| 国产亚洲aⅴ在线电影| 2021精品国产自在现线看| 国产精品熟女视频一区二区| 国产成人精品免费视频大全| 18禁裸体动漫美女无遮挡网站| 日本黄网站免费| 国产精品视频全国免费观看| 亚洲中文字幕在线观看一区| 五月综合缴情婷婷六月| 欧美wwww免费一区二区| 国产男女性潮高清免费网站| 亚洲线精品一区二区三区影音先锋| 亚洲 都市 校园 激情 另类| 绝顶高潮合集videos| 免费无码又爽又刺激软件下载直播| 丰满大码的熟女在线视频| 亚洲日韩看片无码电影| 日韩精品影院一区二区三区| 精品欧美成人一区二区不卡在线| 成人国产一区二区三区精品不卡 | 国产熟妇疯狂4p交在线播放| 亚洲一区欧美精品| 日本亚洲欧美综合在线| 国产亚洲精品欧洲在线视频| 少妇人妻偷人精品无码视频新浪| 中文精品久久久久国产网址 |