什么是依賴注入

把有依賴關(guān)系的類放到容器中自晰,解析出這些類的實(shí)例,就是依賴注入稍坯。目的是實(shí)現(xiàn)類的解耦酬荞。

實(shí)例:Class A中用到了Class B的對(duì)象b,一般情況下瞧哟,需要在A的代碼中顯式的new一個(gè)B的對(duì)象混巧。采用依賴注入技術(shù)之后,A的代碼只需要定義一個(gè)私有的B對(duì)象勤揩,不需要直接new來獲得這個(gè)對(duì)象咧党,而是通過相關(guān)的容器控制程序來將B對(duì)象在外部new出來并注入到A類里的引用中。這樣做有什么好處呢陨亡?

解釋:假如現(xiàn)在有N多個(gè)類傍衡,需要用到Class B,那就需要在類里面實(shí)例化N多次,這樣對(duì)于后期的維護(hù)和管理都是不方便的数苫,如果后期需求發(fā)生改變聪舒,那更改量有大很多。

依賴注入的具體實(shí)現(xiàn):


依賴注入代碼

上面代碼中的就是依賴注入虐急,現(xiàn)在又有一個(gè)問題,假如滔迈,現(xiàn)在類b中的b方法現(xiàn)在改名為c了止吁,那a類里面的a方法中被辑,就要將b類中調(diào)用的b方法改成c方法。那依舊涉及到那個(gè)問題敬惦,如果有N多個(gè)類要用到B類呢盼理?那需要做的也是去N多個(gè)類中不斷得去改,這樣對(duì)后期得維護(hù)俄删,需求更改都是要花費(fèi)很大的成本宏怔。

因此,PHP中有一個(gè)接口類的說法畴椰,接口類:

PHP接口(interface)的特點(diǎn)

1臊诊、接口的方法必須是公開的。

2斜脂、接口的方法默認(rèn)是抽象的抓艳,所以不在方法名前面加abstract。

3帚戳、接口可以定義常量玷或,但不能定義成員屬性,常量的定義和用法和類中常量一樣片任。

4偏友、類可以實(shí)現(xiàn)多個(gè)接口(相當(dāng)于把多個(gè)功能集于一身,如手機(jī)實(shí)現(xiàn)了小靈通对供、MP3位他、MP4的功能)

5、接口也可以繼承接口犁钟。

不多做解釋棱诱,直接貼代碼:



圖中可以看到,b類是一個(gè)接口類涝动,c,d繼承了b類迈勋,接口類的具體規(guī)則,則可以自己百度一下醋粟,代碼中靡菇,我們延續(xù)了,第一圖的代碼做為修改米愿,把普通類厦凤,改為接口類來實(shí)現(xiàn)依賴注入,就能解決那個(gè)遺留的問題育苟,當(dāng)依賴注入的類中的方法较鼓,改變了,那我們需要做的就是,在原有的類中博烂,創(chuàng)建一個(gè)子類香椎,接著寫上相同得方法,然后在方法中寫上需要的內(nèi)容和邏輯就行了禽篱,當(dāng)需要得時(shí)候畜伐,直接實(shí)例化,然后注入到需要的類中就行躺率,哪怕是那些類中原有存在的方法都不需要更改玛界。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市悼吱,隨后出現(xiàn)的幾起案子慎框,更是在濱河造成了極大的恐慌,老刑警劉巖舆绎,帶你破解...
    沈念sama閱讀 221,331評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲤脏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吕朵,警方通過查閱死者的電腦和手機(jī)猎醇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來努溃,“玉大人硫嘶,你說我怎么就攤上這事∥嗨埃” “怎么了沦疾?”我有些...
    開封第一講書人閱讀 167,755評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)第队。 經(jīng)常有香客問我哮塞,道長(zhǎng),這世上最難降的妖魔是什么凳谦? 我笑而不...
    開封第一講書人閱讀 59,528評(píng)論 1 296
  • 正文 為了忘掉前任忆畅,我火速辦了婚禮,結(jié)果婚禮上尸执,老公的妹妹穿的比我還像新娘家凯。我一直安慰自己,他們只是感情好如失,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評(píng)論 6 397
  • 文/花漫 我一把揭開白布绊诲。 她就那樣靜靜地躺著,像睡著了一般褪贵。 火紅的嫁衣襯著肌膚如雪掂之。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,166評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音板惑,去河邊找鬼橄镜。 笑死偎快,一個(gè)胖子當(dāng)著我的面吹牛冯乘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晒夹,決...
    沈念sama閱讀 40,768評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼裆馒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了丐怯?” 一聲冷哼從身側(cè)響起喷好,我...
    開封第一講書人閱讀 39,664評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎读跷,沒想到半個(gè)月后梗搅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,205評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡效览,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評(píng)論 3 340
  • 正文 我和宋清朗相戀三年无切,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丐枉。...
    茶點(diǎn)故事閱讀 40,435評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哆键,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瘦锹,到底是詐尸還是另有隱情籍嘹,我是刑警寧澤,帶...
    沈念sama閱讀 36,126評(píng)論 5 349
  • 正文 年R本政府宣布弯院,位于F島的核電站辱士,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏听绳。R本人自食惡果不足惜颂碘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辫红。 院中可真熱鬧凭涂,春花似錦、人聲如沸贴妻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)名惩。三九已至澎胡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背攻谁。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工稚伍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人戚宦。 一個(gè)月前我還...
    沈念sama閱讀 48,818評(píng)論 3 376
  • 正文 我出身青樓个曙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親受楼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子垦搬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容