spring AOP的用處
傳統(tǒng)上, 程序的結(jié)構(gòu)是靜態(tài)的. 定義了一個(gè)類, 它的成員變量和成員函數(shù)就是確定的了,定義了一個(gè)函數(shù), 它的具體實(shí)現(xiàn)也是確定的.
傳統(tǒng)程序設(shè)計(jì)主要定義了一些固化的規(guī)則來規(guī)范這些確定性組分的組合關(guān)系,如類繼承體系所表達(dá)的推理關(guān)系. 而AOP是一種動(dòng)態(tài)代碼織入技術(shù)
AOP就像是一把鋒利的砍刀, 我們用它從最終所期望的程序結(jié)構(gòu)中隨意的砍下一部分來, 起個(gè)名字,就叫Aspect吧. 實(shí)際上AOP技術(shù)本身并沒有限定程序中哪些部分可以作為Aspect, 這種技術(shù)本身并不保證你可以抽象得出真正有價(jià)值的Aspect, 它只是一種純粹的程序結(jié)構(gòu)操縱技術(shù)而已.
\
類似于 \○
←□→
11\
\
一個(gè)人被從身體的中間這么喀嚓一下下,成了一個(gè)切面;這個(gè)切面可不是固定的;再哪個(gè)部位都能喀嚓那么一下;并且這個(gè)切面就有了一個(gè)名字叫做“aspect”
我們可以對(duì)這個(gè)切面進(jìn)行統(tǒng)一的管理,集中的權(quán)限控制,看看誰能夠摸一下這砍完后,這個(gè)血淋淋的一個(gè)切面;
對(duì)砍完后的每個(gè)切面分別控制,然后最后組合起來;
通過切面,我們可以將系統(tǒng)中各個(gè)不同層次上的問題隔離開來,實(shí)現(xiàn)統(tǒng)一集約式處理。各切面只需集中于自己領(lǐng)域內(nèi)的邏輯實(shí)現(xiàn)(這句話不能理解)。這一方面使得開發(fā)邏輯更加清晰,專業(yè)化分工更加易于進(jìn)行;另一方面,由于切面的隔離,降低了耦合性,我們就可以在不同的應(yīng)用中將各個(gè)切面組合使用,從而使得代碼可重用性大大增強(qiáng)
AOP就像是一把鋒利的砍刀, 我們用它從最終所期望的程序結(jié)構(gòu)中隨意的砍下一部分來, 起個(gè)名字,就叫Aspect吧. 實(shí)際上AOP技術(shù)本身并沒有限定程序中哪些部分可以作為Aspect, 這種技術(shù)本身并不保證你可以抽象得出真正有價(jià)值的Aspect, 它只是一種純粹的程序結(jié)構(gòu)操縱技術(shù)而已.
\
類似于 \○
←□→
11\
\
一個(gè)人被從身體的中間這么喀嚓一下下,成了一個(gè)切面;這個(gè)切面可不是固定的;再哪個(gè)部位都能喀嚓那么一下;并且這個(gè)切面就有了一個(gè)名字叫做“aspect”
我們可以對(duì)這個(gè)切面進(jìn)行統(tǒng)一的管理,集中的權(quán)限控制,看看誰能夠摸一下這砍完后,這個(gè)血淋淋的一個(gè)切面;
對(duì)砍完后的每個(gè)切面分別控制,然后最后組合起來;
通過切面,我們可以將系統(tǒng)中各個(gè)不同層次上的問題隔離開來,實(shí)現(xiàn)統(tǒng)一集約式處理。各切面只需集中于自己領(lǐng)域內(nèi)的邏輯實(shí)現(xiàn)(這句話不能理解)。這一方面使得開發(fā)邏輯更加清晰,專業(yè)化分工更加易于進(jìn)行;另一方面,由于切面的隔離,降低了耦合性,我們就可以在不同的應(yīng)用中將各個(gè)切面組合使用,從而使得代碼可重用性大大增強(qiáng)
posted on 2009-06-11 17:17 whl 閱讀(525) 評(píng)論(0) 編輯 收藏