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