<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0
    ???? 以下是前幾日在我csdn的blog上發(fā)的一篇翻譯文章,?拖了幾天還是“未完待續(xù)”,??,再過(guò)一陣一定翻譯完成,英文見(jiàn):http://blog.csdn.net/amigoxie/archive/2007/02/10/1506862.aspx

    ?????是從網(wǎng)上轉(zhuǎn)載的。?
    ?????雖翻譯得很蹩腳,但因我打算2007年將英語(yǔ)學(xué)好,這次也算是點(diǎn)小行動(dòng),望大伙鼓勵(lì)之,別砸我磚頭。

    ???? AOP != Interception

    ??? 最近,許多作者在討論AOP(面向方面編程),但這整個(gè)事情是不可置信的強(qiáng)大和精彩。然而,他們中的大部分真正談?wù)摰氖且环N叫做攔截器的設(shè)計(jì)模式。這些人并不笨,他們也沒(méi)有被誤導(dǎo)。雖然攔截器從它本身說(shuō)來(lái)是一種強(qiáng)有力的機(jī)制,但是它與AOP是不一樣的。雖然它們享有許多共同的特征,但是將AOP看成是攔截器就像將OOP看成是數(shù)據(jù)結(jié)構(gòu)和一堆函數(shù)指針。就像直到我們將對(duì)象看作僅僅是編碼和數(shù)據(jù)這種觀念拋棄之后才真正懂得對(duì)象一樣,如果我們像真正的懂得在AOP中潛在的巨大能量,我們就需要超越將AOP與攔截器看成是相同的東西的思想。它們?cè)谀承c(diǎn)上顯然是很有關(guān)聯(lián)的,他們并不是等價(jià)的。
    一.定義
    ?? ?對(duì)初學(xué)者來(lái)說(shuō),因?yàn)?0%的參數(shù)是基于語(yǔ)法的差異性,讓我們首先確定一下幾個(gè)術(shù)語(yǔ)。
    ??? 1)面向切面編程
    ??????? ?i)? "面向切面的軟件發(fā)展是一種在軟件發(fā)展中備受關(guān)注的新技術(shù),AOSD報(bào)文交換集中技術(shù)使得模塊化一個(gè)系統(tǒng)的方方面面成為可能。" -AOSD主頁(yè)
    ???? ii) "AOP的主要思想是雖然面向?qū)ο蟪绦蛘Z(yǔ)言中層級(jí)化的模塊化機(jī)制已經(jīng)非常的有用,但是他們天生無(wú)

    法將復(fù)雜系統(tǒng)的所有方面都模塊化。相應(yīng)地,我們相信""
    ?? 2)攔截器
    ?????? ?"攔截器架構(gòu)模式允許能夠透明的加入到框架中,并能夠在某事件發(fā)生的時(shí)候自動(dòng)的觸發(fā)"--軟件架構(gòu)模式。乍一看,這兩個(gè)東西出奇的相似,攔截器在一個(gè)確定的執(zhí)行點(diǎn)執(zhí)行,主要用來(lái)在它攔截到一個(gè)對(duì)象方法時(shí)能提供額外的行為,并且形成了在對(duì)象的切入點(diǎn)之上通過(guò)在源碼中增加聲明式的切入點(diǎn)來(lái)添加額外的行為。雖然有如此多的事情,但是,它們的細(xì)節(jié)真正體現(xiàn)在細(xì)節(jié)和明顯的層下。但是,作為討論的一部分,為了真正的看到為什么它們交迭了如此多我們?cè)傩枰x幾個(gè)術(shù)語(yǔ)。
    ?? 1)分離的關(guān)注點(diǎn):一個(gè)關(guān)注點(diǎn)從本質(zhì)上來(lái)說(shuō)當(dāng)我們需要在我們的軟件系統(tǒng)上建立模塊時(shí)是一個(gè)自動(dòng)的事情。例如,在一個(gè)財(cái)會(huì)系統(tǒng)中,資產(chǎn)概念就是一個(gè)切入點(diǎn),因此,我們嘗試和捕獲將與資產(chǎn)相關(guān)的所有概念變成我們?cè)贠O系統(tǒng)中調(diào)用的對(duì)象時(shí)的連貫的事情。這個(gè)使得我們更好地跟蹤系統(tǒng)中地提取物,允許我們隨著時(shí)間的流逝能更好地維護(hù)。每一種程序設(shè)計(jì)語(yǔ)言含蓄地將這個(gè)作為它們的中心目標(biāo),即使這些關(guān)注點(diǎn)本身和它們應(yīng)該怎樣地捕獲存在很大的不同。
    ?? 2)橫切關(guān)注點(diǎn):橫切關(guān)注點(diǎn),像在面向方面的著作中所說(shuō)的那樣,是系統(tǒng)中的一部分,在標(biāo)準(zhǔn)的對(duì)象模型語(yǔ)義學(xué)中,它不能通過(guò)默認(rèn)的構(gòu)造函數(shù)捕獲。例如,考慮跟蹤一個(gè)方法的入口和出口。通常來(lái)說(shuō),我們通過(guò)類(lèi)本身來(lái)達(dá)到這個(gè)目標(biāo),例如我們可以通過(guò)如下方式:
    ????? if (Debugging.isEnabled())???
    ????????????? Debugging.trace("Method foo() entered");// . . .
    ????? if (Debugging.isEnabled())???
    ????????????? Debugging.trace("Method foo() exiting");
    ???? 就像我們可以想象的那樣,這種行為捕可以通過(guò)基類(lèi)繼承或者通過(guò)提供一個(gè)對(duì)另一個(gè)類(lèi)的內(nèi)部引用來(lái)實(shí)現(xiàn)(OO系統(tǒng)建造一個(gè)干凈的分離的關(guān)注點(diǎn)的規(guī)范化的方式是通過(guò)繼承或合成),每一個(gè)想要跟蹤的方法都要包含這4行語(yǔ)句。另外,更負(fù)責(zé)的是,橫向切入點(diǎn)在企業(yè)系統(tǒng)中的通用用法包括持久化(這點(diǎn)與舊有的對(duì)象關(guān)系是不一樣的),同步行為(我們的對(duì)象在多線程中應(yīng)該怎么處理),以及遠(yuǎn)程化(當(dāng)我們的對(duì)象允許通過(guò)進(jìn)程邊界進(jìn)行調(diào)用時(shí)我們應(yīng)該怎樣處理)。所列的這些問(wèn)題在傳統(tǒng)的面向?qū)ο蟓h(huán)境中都不能清楚地被捕獲。
    ??
    ???????? 攔截器和AOP
    ???????? 攔截器模式來(lái)自POSA2,沒(méi)有更好地定義出來(lái)時(shí),我一直引用規(guī)范化定義, 這個(gè)問(wèn)題是"發(fā)展容易擴(kuò)展的框架",這種解決方案如下:
    ??????? 允許應(yīng)用程序通過(guò)注冊(cè)"頻帶外"的通過(guò)預(yù)先定義的接口帶有框架的服務(wù)對(duì)框架進(jìn)行清晰地?cái)U(kuò)展,并允許框架在這些事件發(fā)生時(shí)自動(dòng)的觸發(fā)這些服務(wù)(注:在本文種,"事件"指的是應(yīng)用級(jí)別的事件,例如在ORB框架中傳輸請(qǐng)求和回應(yīng)。這些事件通常只在框架實(shí)現(xiàn)中是可見(jiàn)的)。另外,打開(kāi)框架的實(shí)現(xiàn),以便外面的服務(wù)能夠?qū)蚣苄袨榈母鞣矫孢M(jìn)行進(jìn)入和控制。
    ?????? 換句話(huà)說(shuō),攔截器常隱含的包含如下東西
    ?????? 1.顯式的支持?jǐn)r截器系統(tǒng):POSA2將其叫做框架,COM+,.NET,servlets和EJB在它們的容器邊界做這些事情,但是它們潛在的思想是一樣的--在某些地方,某些種類(lèi)的構(gòu)造器是那些提供攔截器行為的構(gòu)造器,顯然將攔截器調(diào)用流作為通用處理的一部分。這就意味著。。。。。。。例如,在servlet框架中(開(kāi)始于servlet2.3規(guī)范),攔截器通過(guò)過(guò)濾器提供,允許些servlet的人有機(jī)會(huì)攔截對(duì)servlet和jsp(或任意url)的請(qǐng)求和回應(yīng)。但是,攔截器僅能用于對(duì)url請(qǐng)求和呼應(yīng)進(jìn)行控制,因此過(guò)濾器不能夠做到如下東西,例如:攔截不能調(diào)用普通的java類(lèi)或者通過(guò)像RML或其他系統(tǒng)等渠道調(diào)用。
    ????? 2. 請(qǐng)求/回應(yīng)渠道的概念:攔截器與請(qǐng)求/回應(yīng)語(yǔ)義學(xué)產(chǎn)生了很重要的依賴(lài)關(guān)系,自從攔截器常常用來(lái)在方法的入口和出口完成某些功能,這就意味著很大數(shù)量的相互影響是非接觸的或難以獲得的(如果這有點(diǎn)抽象,有賴(lài)于--這個(gè)可能更易理解)。
    ????? 3. 攔截器在一個(gè)運(yùn)行時(shí)構(gòu)造器中差不多是普及的:POSA2顯式的指出,這些服務(wù)概念的引用在所有的情況下避過(guò)那不都是許亞好的,因此攔截器的行為不能靜態(tài)的分層化--它必須在運(yùn)行時(shí)注冊(cè)。不幸運(yùn)的是,這也意味著一定數(shù)量的運(yùn)行時(shí)超載,特別地,如果攔截器事件模型是粗糙的。例如,在.NET的上下文對(duì)象架構(gòu)中,方法調(diào)用既在既在對(duì)象外部,又在通過(guò)IMessageSink-and-friends架構(gòu)能夠進(jìn)行攔截的上下文內(nèi)部。但是,一旦注冊(cè),上下文攔截器必須在任意方法的進(jìn)入和進(jìn)出上下文時(shí)被調(diào)用;沒(méi)有可選的其他方式來(lái)指明這個(gè)攔截器只對(duì)某種類(lèi)型的方法有效。

    ???? (未完待續(xù))

    posted on 2007-02-13 17:14 阿蜜果 閱讀(1275) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): Spring


    FeedBack:
    # re: AOP != Interception翻譯(未完待續(xù))[未登錄](méi)
    2007-02-14 09:54 | ant
    蠻好,繼續(xù)努力。
    明天回家啦,春節(jié)快樂(lè)!  回復(fù)  更多評(píng)論
      
    # re: AOP != Interception翻譯(未完待續(xù))
    2007-02-14 11:21 | 阿蜜果
    謝謝小螞蟻  回復(fù)  更多評(píng)論
      
    # re: AOP != Interception翻譯(未完待續(xù))
    2007-02-16 00:30 | 施偉
    支持美女,呵呵  回復(fù)  更多評(píng)論
      
    <2007年2月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728123
    45678910

          生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來(lái)如此。
          我的作品:
          玩轉(zhuǎn)Axure RP  (2015年12月出版)
          

          Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    相冊(cè)

    關(guān)注blog

    積分與排名

    • 積分 - 2294312
    • 排名 - 3

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产香蕉免费精品视频| 国产成人高清精品免费鸭子| 国产精品免费综合一区视频| 亚洲乱码日产一区三区| 欧洲 亚洲 国产图片综合| h视频在线免费观看| 国产在线a免费观看| 亚洲欧洲自拍拍偷午夜色无码| 激情综合亚洲色婷婷五月| 国产精品福利在线观看免费不卡| 色se01短视频永久免费| 在线亚洲人成电影网站色www| 亚洲欧洲另类春色校园网站| 香蕉视频在线免费看| 日韩免费观看视频| 91亚洲精品第一综合不卡播放| 五月婷婷免费视频| 成人免费视频小说| 99久久精品国产亚洲| 一个人免费观看视频在线中文| 一二三四免费观看在线视频中文版| 日日噜噜噜噜夜夜爽亚洲精品| 亚洲乱人伦中文字幕无码| 在线观看免费av网站| 亚洲综合国产一区二区三区| 亚洲精品无播放器在线播放| 在线免费观看亚洲| 亚洲精品无码鲁网中文电影| 美女18毛片免费视频| 人禽杂交18禁网站免费| 亚洲人成在线影院| 中文字幕无码免费久久9一区9 | 久久久精品国产亚洲成人满18免费网站 | 国产麻豆成人传媒免费观看| 免费观看午夜在线欧差毛片| 亚洲国产成人99精品激情在线| 久久久久国色av免费看| 亚洲伊人久久大香线蕉综合图片 | 两个人的视频www免费| 国产jizzjizz视频免费看| 亚洲日本人成中文字幕|