色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

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

問題解答

回答1:

已經寫好的東西 拿來即用!

回答2:

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

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

沒有區別,只是角度不同,所指的都是同一件事。簡單來說,不需要你自己創對象,spring幫你將對象放到你需要的地方

回答4:

都是工廠模式的升華罷了。依賴注入和控制反轉代碼原理時一回事,無非是理解上的不同而已。angular.js - 如何通俗易懂的解釋“依賴注入”?這些名詞實在是太高級了,其實無非是面向對象的一些基礎應用而已,把很多朋友糊弄住了。這與策略模式和工廠模式一個樣。

回答5:

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

回答6:

依賴注入和控制反轉本質上沒有區別, 只是對問題描述的角度不同。

控制反轉:到底是什么東西被反轉了呢? 維基百科的定義是依賴對象的獲得被反轉了。應用程序一般都是由很多個對象組成的。一個類中需要用到很多其他的類,最初我們是自己主動通過new關鍵字獲取其他類的實例。這樣就帶來一個問題:各個類的調用關系耦合了。

有了控制反轉之后, 我們只要被動地等待spring將類的實例注入給我們, 我們就可以直接使用了。

這樣有諸多好處, 對象集中管理, 不用自己實現很多單例, 解耦類的調用關系等等。

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

因為擁有了各個bean的控制權, 所以還能衍生出各種強大的功能。spring就是建立在IoC和AOP的基礎上的。

回答7:

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

<?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類依賴的數據庫連接對象var_export( $post->get_post(1024) );

對比下面的寫法,可以體會下依賴注入其實是給完全OOP的某些語言打補丁.

<?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();}

相關文章:
主站蜘蛛池模板: 在线播放亚洲美女视频网站 | 国产精品久久久久毛片真精品 | 国产高清视频免费观看 | 久久视频精品线视频在线网站 | 国产精品九九视频 | 亚洲视频国产 | 欧美综合一区二区三区 | 欧美精品videos | 中日韩一区二区三区 | 中文字幕一区二区精品区 | 一区二区三区四区国产精品 | 三级毛片免费观看 | 久久成人免费观看草草影院 | 欧美丝袜xxxxx在线播放 | 亚洲aⅴ男人的天堂在线观看 | 成在线人永久免费播放视频 | 国产精品久久久精品三级 | 欧美亚洲国产日韩一区二区三区 | 在线欧美精品二区三区 | 国产一级久久久久久毛片 | 99久久精品免费看国产一区二区 | 日韩成人免费在线视频 | 亚洲精品tv久久久久 | 一级毛片日韩a欧美 | 欧美日韩国产高清一区二区三区 | 久久这里一区二区精品 | 欧美亚洲激情视频 | 特级aa一级欧美毛片 | 色综合视频一区二区观看 | 欧美三级三级三级爽爽爽 | 欧美一级毛片久久精品 | 精品国产三级a | 在线免费观看国产 | 久久久免费精品 | 国产一级在线现免费观看 | 日韩国产一区二区 | 成人黄激情免费视频 | 欧美国产日本高清不卡 | 欧美一区二区三区久久综合 | 一级毛片免费不卡在线视频 | 国产手机免费视频 |