2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術(shù)文章正文

依賴注入能解決哪些問題?

更新時間:2021-11-23 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

計算機編程是把一些實際問題組織并抽象起來的過程,編寫程序時,開發(fā)人員經(jīng)常使用團隊其他成員編寫的代碼或者一些第三方工具(如著名的開源庫或者框架)。隨著項目的擴大.項目中需要依賴的模塊會越來越多,這時如何有效地組織這些模塊是非常重要的。依賴注入能夠有效解決模塊問依賴的問題。

依賴注人的英文是Dependency Injection,在軟件開發(fā)中縮寫為DI。依賴注入應(yīng)用了控制反轉(zhuǎn)的設(shè)計思想,因此很多人也稱依賴注人為控制反轉(zhuǎn)。控制反轉(zhuǎn)(Inversion of Control,loC)是一個重要的面向?qū)ο缶幊痰姆▌t,用來減少計算機程序的耦合問題,它一般分為兩種類型——依賴注人和依賴查找(Dependency Lookup)。簡單地說,控制反轉(zhuǎn)是一種設(shè)計思想,而依賴注入是控制反轉(zhuǎn)思想的一種實現(xiàn)方式。
在程序開發(fā)中,組件獲取依賴通常有3種方式。
①使用new運算符直接創(chuàng)建出依賴。該方式是在自己的應(yīng)用程序中創(chuàng)建依賴對象。它有一個弊端,就是當程序的多個模塊都需要應(yīng)用一個對象時,會造成模塊之間的高耦合;如果一個對象參數(shù)過多,有可能還需要對象創(chuàng)建其他參數(shù)對象,所以這種方式無法適合復(fù)雜的應(yīng)用。
②直接引用依賴,如引用全局變量。該方式需要一定的條件,例如依賴對象對于用戶對象是直接開放的,這里不做討論。
③在需要的地方傳人依賴。該方式便是依賴注入,它的重要特點是在系統(tǒng)運行中可以把創(chuàng)建依賴對象的控制權(quán)交給IoC容器,由IoC容器動態(tài)地通過注入的方式,向某個對象提供它所需要的其他對象。這樣對象與對象之間松散耦合,方便測試,利于功能復(fù)用,更重要的是使得程序的整個體系結(jié)構(gòu)變得非常靈活。

依賴注人對編程帶來的最大改變不是從代碼上(而是從思想上發(fā)生了“主從換位”的變化,把應(yīng)用程序向依賴對象主動出擊變?yōu)閼?yīng)用程序被動的等待,由IoC容器來創(chuàng)建并注入它所需要的資源。例如將IoC容器看作一個“保姆”,“我”看作用戶對象,“蛋糕”看作依賴對象:當“我”想吃“蛋糕”時不是自己來做,而是告訴“保姆”,“保姆”做好之后交給“我”,整個過程如圖4-9所示。

1637633991250_依賴注入.png

在實際開發(fā)中,loC容器通常會是一個應(yīng)用框架,如Spring、AngularJS等:用戶對象表示開發(fā)人員編寫的程序;依賴對象可以是任何用戶對象所需要依賴的資源,包括對象、第三方資源、常量等。







猜你喜歡:

依賴注入怎樣實現(xiàn)?有幾種方式?

Spark RDD的兩種依賴關(guān)系?

依賴注入是什么?依賴注入介紹

依賴倒轉(zhuǎn)原則的原理【案例介紹】

黑馬程序員java高級軟件工程師培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!