Building Block

          隨風飄過的日子 - 我們漸漸成長

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            9 隨筆 :: 4 文章 :: 2 評論 :: 0 Trackbacks

          1、引言

          2、AOP技術(shù)基礎

          3、Java平臺AOP技術(shù)研究

          4、.Net平臺AOP技術(shù)研究


          軟件設計因為引入面向?qū)ο笏枷攵饾u變得豐富起來。“一切皆為對象”的精義,使得程序世界所要處理的邏輯簡化,開發(fā)者可以用一組對象以及這些對象之間的關系將軟件系統(tǒng)形象地表示出來。而從對象的定義,進而到模塊,到組件的定義,利用面向?qū)ο笏枷氲姆庋b、繼承、多態(tài)的思想,使得軟件系統(tǒng)開發(fā)可以向搭建房屋那樣,循序漸進,從磚石到樓層,進而到整幢大廈的建成。應用面向?qū)ο笏枷耄谠O計規(guī)模更大、邏輯更復雜的系統(tǒng)時,開發(fā)周期反而能變的更短。自然其中,需要應用到軟件工程的開發(fā)定義、流程的過程控制,乃至于質(zhì)量的缺陷管理。但從技術(shù)的細節(jié)來看,面向?qū)ο笤O計技術(shù)居功至偉。然而,面向?qū)ο笤O計的唯一問題是,它本質(zhì)是靜態(tài)的,封閉的,任何需求的細微變化都可能對開發(fā)進度造成重大影響。

          可能解決該問題的方法是設計模式。GOF將面向?qū)ο筌浖脑O計經(jīng)驗作為設計模式紀錄下來,它使人們可以更加簡單方便地復用成功的設計和體系結(jié)構(gòu),幫助開發(fā)人員做出有利于系統(tǒng)復用的選擇。設計模式解決特定的設計問題,使面向?qū)ο笤O計更靈活、優(yōu)雅,最終復用性更好。然而,設計模式雖然給了我們設計的典范與準則,通過最大程度的利用面向?qū)ο蟮奶匦裕T如利用繼承、多態(tài),對責任進行分離、對依賴進行倒置,面向抽象,面向接口,最終設計出靈活、可擴展、可重用的類庫、組件,乃至于整個系統(tǒng)的架構(gòu)。在設計的過程中,通過各種模式體現(xiàn)了對象的行為,暴露的接口,對象間關系,以及對象分別在不同層次中表現(xiàn)出來的形態(tài)。然而鑒于對象封裝的特殊性,“設計模式”的觸角始終在接口與抽象中大做文章,而對于對象內(nèi)部則無能為力。

          Aspect-Oriented Programming(面向方面編程,AOP)正好可以解決這一問題。它允許開發(fā)者動態(tài)地修改靜態(tài)的OO模型,構(gòu)造出一個能夠不斷增長以滿足新增需求的系統(tǒng),就象現(xiàn)實世界中的對象會在其生命周期中不斷改變自身,應用程序也可以在發(fā)展中擁有新的功能。AOP利用一種稱為“橫切”的技術(shù),剖解開封裝的對象內(nèi)部,并將那些影響了多個類的行為封裝到一個可重用模塊,并將其名為“Aspect”,即方面。所謂“方面”,簡單地說,就是將那些與業(yè)務無關,卻為業(yè)務模塊所共同調(diào)用的邏輯或責任,例如事務處理、日志管理、權(quán)限控制等,封裝起來,便于減少系統(tǒng)的重復代碼,降低模塊間的耦合度,并有利于未來的可操作性和可維護性。

          面向方面編程(AOP)是施樂公司帕洛阿爾托研究中心(Xerox PARC)在上世紀90年代發(fā)明的一種編程范式。但真正的發(fā)展卻興起于近幾年對軟件設計方興未艾的研究。由于軟件系統(tǒng)越來越復雜,大型的企業(yè)級應用越來越需要人們將核心業(yè)務與公共業(yè)務分離。AOP技術(shù)正是通過編寫橫切關注點的代碼,即“方面”,分離出通用的服務以形成統(tǒng)一的功能架構(gòu)。它能夠?qū)贸绦蛑械纳虡I(yè)邏輯同對其提供支持的通用服務進行分離,使得開發(fā)人員從重復解決通用服務的勞動中解脫出來,而僅專注于企業(yè)的核心商業(yè)邏輯。因此,AOP技術(shù)也就受到越來越多的關注,而應用于各種平臺下的AOP技術(shù)也應運而生。但由于AOP技術(shù)相對于成熟的OOP技術(shù)而言,在性能、穩(wěn)定性、適用性等方面還有待完善,同時AOP技術(shù)也沒有形成一個統(tǒng)一的標準,這使得AOP技術(shù)的研究更具有前沿性的探索價值。

          posted on 2005-12-20 14:44 幾木 閱讀(114) 評論(0)  編輯  收藏

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 诸城市| 蓬莱市| 江源县| 海南省| 新巴尔虎右旗| 鄯善县| 深泽县| 谢通门县| 武山县| 加查县| 唐山市| 杨浦区| 清丰县| 谷城县| 邵阳县| 武鸣县| 靖西县| 商河县| 阜阳市| 开原市| 富裕县| 福泉市| 驻马店市| 海阳市| 阳曲县| 东安县| 和硕县| 民权县| 格尔木市| 怀集县| 隆林| 日照市| 开江县| 静海县| 青州市| 东阳市| 茌平县| 铜鼓县| 汶上县| 阿城市| 万安县|