国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

angular.js - 如何通俗易懂的解釋“依賴注入”?

瀏覽:108日期:2024-09-29 16:17:29

問題描述

如何通俗易懂的解釋“依賴注入”?另外,依賴注入和控制反轉(zhuǎn)有區(qū)別嗎?具體是什么區(qū)別?

問題解答

回答1:

已經(jīng)寫好的東西 拿來即用!

回答2:

首先 什么叫依賴? 一個(gè)對(duì)象依賴與其他對(duì)象 比如var d=new Date();就是d依賴于Date對(duì)象創(chuàng)建第二 依不依賴比較好?no 為了實(shí)現(xiàn)程序的低耦合,盡量減少各組件之間的相互依賴和制約比較好,比如一個(gè)構(gòu)造函數(shù),別人已經(jīng)創(chuàng)建好了,我不用再創(chuàng)建就可以直接調(diào)用。第三 什么叫注入?意思我現(xiàn)在用的對(duì)象是別人給的,是被動(dòng)創(chuàng)建的。比如

angular.module(’M1’,[’ng’,’ngRoute’]).controller(’C1’,function($scope,$http){ $scope.data = 999; $http.get().success(); })這段代碼運(yùn)行時(shí):只需要傳入所需要的模塊的名稱,ng底層自動(dòng)創(chuàng)建相關(guān)的對(duì)象,直接使用回答3:

沒有區(qū)別,只是角度不同,所指的都是同一件事。簡(jiǎn)單來說,不需要你自己創(chuàng)對(duì)象,spring幫你將對(duì)象放到你需要的地方

回答4:

都是工廠模式的升華罷了。依賴注入和控制反轉(zhuǎn)代碼原理時(shí)一回事,無非是理解上的不同而已。angular.js - 如何通俗易懂的解釋“依賴注入”?這些名詞實(shí)在是太高級(jí)了,其實(shí)無非是面向?qū)ο蟮囊恍┗A(chǔ)應(yīng)用而已,把很多朋友糊弄住了。這與策略模式和工廠模式一個(gè)樣。

回答5:

可以參考下:http://www.nowcoder.com/questionTerminal/3be16186465a453f876729acd2e46ddf

回答6:

依賴注入和控制反轉(zhuǎn)本質(zhì)上沒有區(qū)別, 只是對(duì)問題描述的角度不同。

控制反轉(zhuǎn):到底是什么東西被反轉(zhuǎn)了呢? 維基百科的定義是依賴對(duì)象的獲得被反轉(zhuǎn)了。應(yīng)用程序一般都是由很多個(gè)對(duì)象組成的。一個(gè)類中需要用到很多其他的類,最初我們是自己主動(dòng)通過new關(guān)鍵字獲取其他類的實(shí)例。這樣就帶來一個(gè)問題:各個(gè)類的調(diào)用關(guān)系耦合了。

有了控制反轉(zhuǎn)之后, 我們只要被動(dòng)地等待spring將類的實(shí)例注入給我們, 我們就可以直接使用了。

這樣有諸多好處, 對(duì)象集中管理, 不用自己實(shí)現(xiàn)很多單例, 解耦類的調(diào)用關(guān)系等等。

假設(shè)有2個(gè)類 A和B, 如果A中使用了new B()這樣的語(yǔ)句, 那就添加一條從B到A的有向邊。龐大一點(diǎn)的工程可能擁有上千個(gè)類, 這樣構(gòu)成的有向圖必定會(huì)異常復(fù)雜。如果用了控制反轉(zhuǎn), 在最極端的情況下, 我們所有的類都會(huì)變成獨(dú)立的點(diǎn)。

因?yàn)閾碛辛烁鱾€(gè)bean的控制權(quán), 所以還能衍生出各種強(qiáng)大的功能。spring就是建立在IoC和AOP的基礎(chǔ)上的。

回答7:

有個(gè)數(shù)據(jù)庫(kù)類db,它有一個(gè)靜態(tài)方法get_db()能獲取數(shù)據(jù)庫(kù)連接對(duì)象.另外有一個(gè)需要操作數(shù)據(jù)庫(kù)的類post,它有個(gè)方法get_post()需要查詢數(shù)據(jù)庫(kù).因?yàn)閿?shù)據(jù)庫(kù)連接是公共操作,類post不想在自己內(nèi)部又去連接一次數(shù)據(jù)庫(kù),避免耦合.所以post這個(gè)類內(nèi)部提供了一個(gè)set_db()的方法來獲取數(shù)據(jù)庫(kù)連接對(duì)象.db::get_db()作為post類的set_db()這個(gè)方法的參數(shù)傳到post類內(nèi)部,這就是依賴注入.

<?phpclass db { public static function get_db() {return new mysqli(’127.0.0.1’,’user’,’pass’,’dbname’,3306); }}class post { private $db; public function set_db($db){$this->db = $db; } public function get_post($id){return $this->db->query(’SELECT * FROM post WHERE id =’.intval($id)); }}$post = new post();$post->set_db( db::get_db() ); //注入post類依賴的數(shù)據(jù)庫(kù)連接對(duì)象var_export( $post->get_post(1024) );

對(duì)比下面的寫法,可以體會(huì)下依賴注入其實(shí)是給完全OOP的某些語(yǔ)言打補(bǔ)丁.

<?phpfunction db() { static $db; if ($db) {return $db; } else {$db = new mysqli(’127.0.0.1’,’user’,’pass’,’dbname’,3306);return $db; }}function get_post($id) { $db = db(); return $db->query(’SELECT * FROM post WHERE id =’.intval($id))->fetch_all();}

相關(guān)文章:
主站蜘蛛池模板: 久久亚洲人成国产精品 | 国产高清成人mv在线观看 | 亚洲综合图片人成综合网 | 久久久久国产成人精品亚洲午夜 | 男人女人做黄刺激性视频免费 | 一区二区三区在线免费观看视频 | 国内精品美女写真视频 | 国产亚洲一区二区精品 | 亚洲国产精品一区二区第四页 | 在线观看一二三区 | 亚洲综合色在线观看 | 亚洲成人综合网站 | 国产短视频精品一区二区三区 | 久久国产欧美 | 日韩三级视频在线观看 | 亚洲三级毛片 | 欧美视频一区二区三区精品 | 久久高清免费视频 | 免费观看欧美一级牲片一 | 亚洲午夜精品一级在线 | 日韩精品在线一区 | 日韩欧美印度一级毛片 | 在线不卡国产 | 久久厕所| 91手机看片国产福利精品 | 国产成人丝袜网站在线看 | 国产自产21区 | 亚洲一区二区三区福利在线 | 久久爽久久爽久久免费观看 | 在线播放性xxx欧美 在线播放亚洲视频 | 国产精品三级 | 日韩欧美在线播放视频 | 亚洲视频在线一区 | 亚洲一区三区 | 萌白酱白丝护士服喷水铁牛tv | 中国大陆一级毛片 | 亚洲综合精品一二三区在线 | 99手机在线视频 | 在线 中文字幕 日韩 欧美 | 网友自拍第一页 | 久久两性视频 |