中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

控制反轉的意思是什么

發布時間:2020-07-31 10:35:24 來源:億速云 閱讀:257 作者:Leah 欄目:互聯網科技

本篇文章給大家分享的是有關控制反轉的意思是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

控制反轉是面向對象編程中的一種設計原則,可以用來減低計算機代碼之間的耦合度,還可以通過控制反轉,讓對象在被創建的時候,由一個調控系統內所有對象的外界實體將其所依賴的對象的引用傳遞給它。

控制反轉(Inversion of Control,縮寫為IoC),是面向對象編程中的一種設計原則,可以用來減低計算機代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫“依賴查找”(Dependency Lookup)。通過控制反轉,對象在被創建的時候,由一個調控系統內所有對象的外界實體將其所依賴的對象的引用傳遞給它。也可以說,依賴被注入到對象中。

控制反轉實現策略

IoC是一個很大的概念,可以用不同的方式實現。其主要形式有兩種:

依賴查找:容器提供回調接口和上下文條件給組件。EJB和Apache Avalon 都使用這種方式。這樣一來,組件就必須使用容器提供的API來查找資源和協作對象,僅有的控制反轉只體現在那些回調方法上(也就是上面所說的 類型1):容器將調用這些回調方法,從而讓應用代碼獲得相關資源。

依賴注入:組件不做定位查詢,只提供普通的Java方法讓容器去決定依賴關系。容器全權負責的組件的裝配,它會把符合依賴關系的對象通過JavaBean屬性或者構造函數傳遞給需要的對象。通過JavaBean屬性注射依賴關系的做法稱為設值方法注入(Setter Injection);將依賴關系作為構造函數參數傳入的做法稱為構造器注入(Constructor Injection)

控制反轉實現方法

實現數據訪問層

數據訪問層有兩個目標。第一是將數據庫引擎從應用中抽象出來,這樣就可以隨時改變數據庫—比方說,從微軟SQL變成Oracle。不過在實踐上很少會這么做,也沒有足夠的理由和能力去通過使用實現數據訪問層而對現有的應用進行重構。

第二個目標是將數據模型從數據庫實現中抽象出來。這使得數據庫或代碼開源根據需要改變,同時只會影響主應用的一小部分——數據訪問層。這一目標是值得的,為了在現有系統中實現它進行必要的重構。

模塊與接口重構

依賴注入背后的一個核心思想是單一功能原則(single responsibility principle)。該原則指出,每一個對象應該有一個特定的目的,而應用需要利用這一目的的不同部分應當使用合適的對象。這意味著這些對象在系統的任何地方都可以重用。但在現有系統里面很多時候都不是這樣的。

隨時增加單元測試

把功能封裝到整個對象里面會導致自動測試困難或者不可能。將模塊和接口與特定對象隔離,以這種方式重構可以執行更先進的單元測試。按照后面再增加測試的想法繼續重構模塊是誘惑力的,但這是錯誤的。

使用服務定位器而不是構造注入

實現控制反轉不止一種方法。最常見的辦法是使用構造注入,這需要在對象首次被創建時提供所有的軟件依賴。然而,構造注入要假設整個系統都使用這一模式,這意味著整個系統必須同時進行重構。這很困難、有風險,且耗時。

以上就是控制反轉的意思是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东方市| 阳高县| 锦州市| 佛教| 巴林左旗| 攀枝花市| 咸宁市| 宣恩县| 丰县| 堆龙德庆县| 华池县| 兴业县| 新建县| 会宁县| 砚山县| 望江县| 北川| 乐平市| 云阳县| 讷河市| 沙雅县| 乐陵市| 田阳县| 山丹县| 察雅县| 大竹县| 渝北区| 汝阳县| 西峡县| 新沂市| 迁西县| 尼木县| 西平县| 延寿县| 武胜县| 瑞昌市| 台中市| 江永县| 澎湖县| 施秉县| 彰武县|