javan

          i like java
          隨筆 - 0, 文章 - 28, 評(píng)論 - 2, 引用 - 0
          數(shù)據(jù)加載中……

          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)

          posted on 2009-06-11 17:17 whl 閱讀(525) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阿拉善右旗| 尤溪县| 饶平县| 元氏县| 安平县| 龙胜| 莒南县| 平原县| 兴义市| 房山区| 乐清市| 舟曲县| 城固县| 和静县| 丹寨县| 丹棱县| 桂平市| 浦北县| 莱阳市| 河曲县| 柳河县| 文化| 碌曲县| 宜昌市| 淄博市| 台东县| 湾仔区| 垦利县| 志丹县| 瑞安市| 高要市| 子长县| 河西区| 卫辉市| 墨竹工卡县| 南昌县| 德昌县| 花莲县| 正定县| 金寨县| 罗山县|