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