摘要:基本的解釋想必打開這篇文章的人,對(duì)依賴注入和控制反轉(zhuǎn)都有了大致的概念。實(shí)際上,在去理解依賴注入和控制反轉(zhuǎn)時(shí),我們需要有兩個(gè)概念。
基本的解釋
想必打開這篇文章的人,對(duì)依賴注入和控制反轉(zhuǎn)都有了大致的概念。簡(jiǎn)單的說:控制反轉(zhuǎn)是依賴注入的實(shí)現(xiàn)。
舉一個(gè)例子男人A 要找女朋友,他可以去網(wǎng)聊、去夜店、去酒吧等等各種地方碰運(yùn)氣,花錢花時(shí)間。這是一種找女朋友的方法,也是很多人的做法。
男人B 要找女朋友,他年紀(jì)大了沒有那么多時(shí)間和精力在這方面花費(fèi)氣力,直接去相親。這是很多大齡青年找女朋友的方法,也就是今天想說的方法。
簡(jiǎn)單的說明假設(shè)以上例子就是找女朋友,找到女朋友就OK。那么哪一個(gè)效率更高呢?顯然是男人B。
對(duì)于男人B 來說,他的目標(biāo)是找女朋友,他 依賴 相親 注入 女朋友。這里的相親可以理解成為一個(gè)服務(wù),比如說婚戀網(wǎng)站,同事朋友的介紹,婚介所等等。
對(duì)于男人A 來說,他的所投入的時(shí)間和金錢等,可以擁有更高質(zhì)量的女朋友??赡軐?duì)這個(gè)女朋友了如指掌,能完全摸清楚她的脾氣,以至于能夠控制她。
但對(duì)于男人B 來說,想了解和控制這個(gè)女朋友就不好說了。因?yàn)橐稽c(diǎn)都不了解,更別說控制了。換句話說:控制 這個(gè)女朋友的能力,完全 反轉(zhuǎn) 了。
代碼的解釋很多人不理解依賴注入和控制反轉(zhuǎn)主要是不熟悉適用場(chǎng)景,其實(shí)在很多框架中我們說用到了 IoC 和 DI,實(shí)際上都是一回事,他實(shí)際上就是我們?cè)O(shè)計(jì)模式的一種:門面模式,也稱外觀模式。
實(shí)際上,在去理解 依賴注入 和 控制反轉(zhuǎn) 時(shí),我們需要有兩個(gè)概念。
我們需要做一件事;
項(xiàng)目中有提供做這件事的方法。
實(shí)際的代碼class Boy { public function getGirlfriend() { $site = new LoveSite(); $site->createGirl(); } } class LoveSite { public function createGirl() {} } $boy = new Boy; $boy->getGirlfriend();
以上代碼是個(gè)例子,對(duì)于 Boy 來說, LoveSite 是他的一個(gè)依賴,只有在使用 Boy,并調(diào)用 getGirlfriend 方法的時(shí)候,才會(huì)被它注入,并創(chuàng)建一個(gè) girl。
而控制反轉(zhuǎn)在這個(gè)例子中的體現(xiàn)就是用多帶帶的一個(gè) LoveSite 類去實(shí)現(xiàn) createGirl 的功能,而不是把這個(gè)函數(shù)的代碼寫在 Boy 類中。
以上。。。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30987.html
摘要:基本的解釋想必打開這篇文章的人,對(duì)依賴注入和控制反轉(zhuǎn)都有了大致的概念。實(shí)際上,在去理解依賴注入和控制反轉(zhuǎn)時(shí),我們需要有兩個(gè)概念。 基本的解釋 想必打開這篇文章的人,對(duì)依賴注入和控制反轉(zhuǎn)都有了大致的概念。簡(jiǎn)單的說:控制反轉(zhuǎn)是依賴注入的實(shí)現(xiàn)。 舉一個(gè)例子 男人A 要找女朋友,他可以去網(wǎng)聊、去夜店、去酒吧等等各種地方碰運(yùn)氣,花錢花時(shí)間。這是一種找女朋友的方法,也是很多人的做法。 男人B 要找...
摘要:學(xué)習(xí)總結(jié)學(xué)習(xí)整理的一些筆記,很簡(jiǎn)單。大部分認(rèn)為和只是不同的叫法而已。依賴注入的兩種方式和注解使用注釋驅(qū)動(dòng)的功能源碼剖析 Spring IoC學(xué)習(xí)總結(jié) 學(xué)習(xí)spring Ioc整理的一些筆記,很簡(jiǎn)單。分享給大家。 IoC 基本概念 在這之前,我們先記住一句話。好萊塢原則:Dont call us, we will call you.其實(shí)這句話很恰當(dāng)?shù)匦稳萘朔崔D(zhuǎn)的意味;Ioc, Inve...
摘要:對(duì)象之間耦合度過高的系統(tǒng),必然會(huì)出現(xiàn)牽一發(fā)而動(dòng)全身的情形??刂票环崔D(zhuǎn)之后,獲得依賴對(duì)象的過程由自身管理變?yōu)榱擞扇萜髦鲃?dòng)注入。于是,他給控制反轉(zhuǎn)取了一個(gè)更合適的名字叫做依賴注入。 Spring還可以這么學(xué)--IoC(控制反轉(zhuǎn)) / DI(依賴注入)理解 聲明:文章的前三部分參考博文:https://www.cnblogs.com/Nouno...這篇文章首發(fā)是在我的個(gè)人微信訂閱號(hào)每天學(xué)編...
摘要:引述最近看設(shè)計(jì)模式以及代碼,對(duì)于控制反轉(zhuǎn)以及依賴注入這些概念非常困惑,于是找了一些資料,以下是對(duì)于控制反轉(zhuǎn)的一下理解。其中最常見的方式叫做依賴注入,簡(jiǎn)稱,還有一種方式叫依賴查找。在軟件工程中,依賴注入是種實(shí)現(xiàn)控制反轉(zhuǎn)用于解決依賴性設(shè)計(jì)模式。 引述 最近看設(shè)計(jì)模式以及l(fā)aravel代碼,對(duì)于控制反轉(zhuǎn)以及依賴注入這些概念非常困惑,于是找了一些資料,以下是對(duì)于控制反轉(zhuǎn)的一下理解。 概念 Io...
摘要:劃下重點(diǎn),服務(wù)容器是用于管理類的依賴和執(zhí)行依賴注入的工具。類的實(shí)例化及其依賴的注入,完全由服務(wù)容器自動(dòng)的去完成。 本文首發(fā)于 深入剖析 Laravel 服務(wù)容器,轉(zhuǎn)載請(qǐng)注明出處。喜歡的朋友不要吝嗇你們的贊同,謝謝。 之前在 深度挖掘 Laravel 生命周期 一文中,我們有去探究 Laravel 究竟是如何接收 HTTP 請(qǐng)求,又是如何生成響應(yīng)并最終呈現(xiàn)給用戶的工作原理。 本章將帶領(lǐng)大...
閱讀 2424·2021-09-08 09:45
閱讀 3364·2021-09-08 09:45
閱讀 3111·2019-08-30 15:54
閱讀 3361·2019-08-26 13:54
閱讀 1418·2019-08-26 13:26
閱讀 1396·2019-08-26 13:23
閱讀 920·2019-08-23 17:57
閱讀 2190·2019-08-23 17:14