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

IOC和AOP分別是什么?如何理解?

更新時(shí)間:2020-12-15 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

AOP把【核心代碼】和【非核心代碼】分離提高開發(fā)的效率。

IOC—Inversion of Control,即“控制反轉(zhuǎn)”,不是什么技術(shù),而是一種設(shè)計(jì)思想。在Java開發(fā)中,Ioc意味著將你設(shè)計(jì)好的對象交給容器控制,而不是傳統(tǒng)的在你的對象內(nèi)部直接控制。如何理解好Ioc呢?理解好Ioc的關(guān)鍵是要明確“誰控制誰,控制什么,為何是反轉(zhuǎn)(有反轉(zhuǎn)就應(yīng)該有正轉(zhuǎn)了),哪些方面反轉(zhuǎn)了”

誰控制誰,控制什么?

傳統(tǒng)Java SE程序設(shè)計(jì),我們直接在對象內(nèi)部通過new進(jìn)行創(chuàng)建對象,是程序主動去創(chuàng)建依賴對象;而IoC是有專門一個(gè)容器來創(chuàng)建這些對象,即由Ioc容器來控制對象的創(chuàng)建;誰控制誰?當(dāng)然是IoC容器控制了對象;控制什么?那就是主要控制了外部資源獲取(不只是對象包括比如文件等)。


為何是反轉(zhuǎn),哪些方面反轉(zhuǎn)了?

有反轉(zhuǎn)就有正轉(zhuǎn),傳統(tǒng)應(yīng)用程序是由我們自己在對象中主動控制去直接獲取依賴對象,也就是正轉(zhuǎn);而反轉(zhuǎn)則是由容器來幫忙創(chuàng)建及注入依賴對象;為何是反轉(zhuǎn)?因?yàn)橛扇萜鲙臀覀儾檎壹白⑷胍蕾噷ο?,對象只是被動的接受依賴對象,所以是反轉(zhuǎn);哪些方面反轉(zhuǎn)了?依賴對象的獲取被反轉(zhuǎn)了



猜你喜歡

Java AQS是什么?如何理解AQS?

反射機(jī)制應(yīng)用:DAO抽取通用層實(shí)現(xiàn)

JVM字符串底層實(shí)現(xiàn)原理介紹

Java高級軟件工程師培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!