天堂av免费 I av无码小缝喷白浆在线观看 I 欧美日韩一区在线播放 I 污黄瓜视频 I 色av色 I 亚洲加勒比少妇无码av I 久久人人97超碰国产精品 I 黑料网址成人免费观看 I 色鬼三级在线播放 I 2019久久久最新精品 I 国产成a人片在线观看视频 I 伊人精品久久久久中文字幕 I 日韩中出 I 亚洲第一欧美 I 火辣日本少妇 I 国产97av I 亚洲浮力影院 I 国产亚洲精品自在久久蜜tv I 黄色网址av I www.欧美色图.com I 碰碰精品 I 五月综合激情网 I 黄色片在线免费 I 精品久久久久久久久久ntr影视 I 日本黄色绿像 I 免费视频久久久久久久 I 久草在线视频看看 I 中文字幕国产在线观看 I 性色欲情网站iwww九文堂 I 偷拍对白清晰情侣视频 I 国产老头和老头xxxxx免费 I 麻豆精品在线 I 国产精伦一区二区三区 I 91麻豆精品国产91 I 一区二区三区在线视频看

×

淺談PHP如何實(shí)現(xiàn)依賴注入(二)

  • 作者:新網(wǎng)
  • 來(lái)源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-10 18:02:33

現(xiàn)在我們就當(dāng)已經(jīng)實(shí)現(xiàn)了redisDB和cache這兩個(gè)組件,具體的細(xì)節(jié)這里就先不做討論了,來(lái)看看如何使用使用吧。首先需要將兩個(gè)組件注入到容器中:

 現(xiàn)在我們就當(dāng)已經(jīng)實(shí)現(xiàn)了redisDB和cache這兩個(gè)組件,具體的細(xì)節(jié)這里就先不做討論了,來(lái)看看如何使用使用吧。首先需要將兩個(gè)組件注入到容器中:

002UASMrzy7605pjKJv15&690.jpg

<div
到這里你可能會(huì)覺得這樣以來(lái)反而有點(diǎn)繁瑣了。cache和redisDB的結(jié)構(gòu)如此之像,完全可以把redis寫到cache中而沒必要單獨(dú)分離出來(lái)?但是你想過沒有,有些數(shù)據(jù)及時(shí)性沒那么高而且數(shù)量比較大,用redis有點(diǎn)不合適,mongodb是更好的選擇;有些數(shù)據(jù)更新頻率更慢,對(duì)查詢速度也沒要求,直接寫入文件保存到硬盤可能更為合適;再或者,你的客戶覺得redis運(yùn)維難度有點(diǎn)大,讓你給他換成memcache... 這就是為什么把它分離出來(lái)了。然后,繼續(xù)改進(jìn)代碼:
 
我們新增加了一個(gè)接口BackendInterface,規(guī)定了redisDB,mongoDB,file這三個(gè)類必須實(shí)現(xiàn)這個(gè)接口所要求的功能,至于其他錦上添花的功能,隨你怎么發(fā)揮。而cache的代碼,好像沒有變,因?yàn)閏ache不需要關(guān)心數(shù)據(jù)是怎么存入數(shù)據(jù)庫(kù)或者文件中。而cache的調(diào)用者,也不需要關(guān)心cache具體是怎么實(shí)現(xiàn)的,只要根據(jù)接口實(shí)現(xiàn)相應(yīng)的方法就行了。多人協(xié)作你會(huì)更加受益,你們只需要商定好接口,然后分別實(shí)現(xiàn)就行了。
 
以上代碼還可以繼續(xù)改進(jìn),直到你認(rèn)為無(wú)可挑剔為止。比如,redis服務(wù)在一個(gè)請(qǐng)求中可能會(huì)調(diào)用多次,而每次調(diào)用都會(huì)重新創(chuàng)建,這將有損性能。只需擴(kuò)展一下DI容器就好增加一個(gè)參數(shù)或增加一個(gè)方法,隨你。
 
這樣以來(lái),如果某個(gè)服務(wù)在一次請(qǐng)求中要調(diào)用多次,你就可以將shared屬性設(shè)置為true,以減少不必要的浪費(fèi)。如果你覺得每次在注入時(shí)都要setDi有點(diǎn)繁瑣,想讓他自動(dòng)setDi,那可以這么做:
 
然后,就可以這樣:
 
我們現(xiàn)在所實(shí)現(xiàn)的這個(gè)DI容器還很簡(jiǎn)陋,還不支持復(fù)雜的注入,你可以繼續(xù)完善它。不過,通過這些代碼你已經(jīng)了解什么是依賴在注入了,你可以將這種思想應(yīng)用到你的項(xiàng)目中,或者著手開發(fā)你自己的框架。
 
以上就是小編關(guān)于依賴注入知識(shí)的分享,后續(xù)我們會(huì)為大家更多知識(shí)干貨!
 

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading