Spring3.0第二講:什么是IOC-創(chuàng)新互聯(lián)

對于IOC(Inversion of Control),很多人有不同的見解,這相當(dāng)于“一千人心中有一千個哈姆雷特”,其實(shí)說來說去總是離不開“控制反轉(zhuǎn)”和“依賴注入”。不要把IOC當(dāng)成一種什么的很高深的技術(shù),它只是一種概念,告訴你Spring針對程序解耦的實(shí)現(xiàn)方法。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、富平網(wǎng)絡(luò)推廣、成都微信小程序、富平網(wǎng)絡(luò)營銷、富平企業(yè)策劃、富平品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供富平建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

   首先我們來詳細(xì)說一下什么叫“控制反轉(zhuǎn)”,分解為兩個關(guān)鍵詞:控制和反轉(zhuǎn)

  ①傳統(tǒng)的JavaSE中我們?nèi)绻谝粋€對象引入其他對象,習(xí)慣用new,這樣我們就可以用這個對象資源,而IOC則是將對象創(chuàng)建其他對象的控制權(quán)收到自己手中,當(dāng)對象需要引用其他對象時,不需要我們new,IOC容器會為你創(chuàng)建,即將對象新建的控制拿在手里。

  ②所謂new對象是屬于主動的行為,那么被動的獲取對象就屬于被動行為,從我們自己主動創(chuàng)建依賴對象到由容器控制創(chuàng)建以及注入依賴對象,就是一種反轉(zhuǎn)。

下面圖片很好的反應(yīng)了這個過程:

 Spring3.0第二講:什么是IOC

當(dāng)引入IOC容器后,用戶不需要去創(chuàng)建這些類:

Spring3.0第二講:什么是IOC

知道IOC原理以后,我們需要知道Spring 的IOC帶給我們怎么樣的變化:

實(shí)現(xiàn)組件之間的解耦,提高程序的靈活性和可維護(hù)性。

但是同時:

1、創(chuàng)建對象的步驟變復(fù)雜了,不直觀,當(dāng)然這是對不習(xí)慣這種方式的人來說的。

2、因?yàn)槭褂梅瓷鋪韯?chuàng)建對象,所以在效率上會有些損耗。但相對于程序的靈活性和可維護(hù)性來說,這點(diǎn)損耗是微不足道的。

3、缺少IDE重構(gòu)的支持,如果修改了類名,還需到XML文件中手動修改,這似乎是所有XML方式的缺憾所在。

其次,我們來說一下“依賴注入”(DI)。

依賴注入其實(shí)與控制反轉(zhuǎn)是從不同角度來說明IOC概念,兩個對象之間的依賴關(guān)系在程序運(yùn)行時由外部容器動態(tài)的注入依賴行為方式稱為依賴注入 (DI) 。

①如果類A需要運(yùn)用類B的方法或者屬性,通俗的說他們之前存在依賴關(guān)系。

②當(dāng)A運(yùn)行時,IOC容器會將類B注入到A中,A不需要知道B什么時候創(chuàng)建以及怎么構(gòu)造的。

對于IOC,我們只要明白"控制反轉(zhuǎn)"以及"依賴注入"中的每個字的含義就行了,它代表的只是一種設(shè)計原理,并非那么高深。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

本文標(biāo)題:Spring3.0第二講:什么是IOC-創(chuàng)新互聯(lián)
分享地址:http://muchs.cn/article14/deisge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計營銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、域名注冊、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名