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

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

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

    最愛(ài)Java

    書山有路勤為徑,學(xué)海無(wú)涯苦作舟

    《AspectJ Cookbook》讀書筆記一: 面向方面的概述

    橫切關(guān)注點(diǎn)
            面向?qū)ο缶幊痰幕厩疤峋褪亲岄_(kāi)發(fā)人員能夠在軟件中表述模塊化的橫切關(guān)注點(diǎn)(crosscutting concern)。橫切關(guān)注點(diǎn)是跨軟件特定部分使用的一種行為,通常也是一種數(shù)據(jù)。它可能是一種約束,作為軟件本身的一種特征,或者只是所有類都必須執(zhí)行的一種行為。

    方面
            方面(aspect)是橫切關(guān)注點(diǎn)的另一種稱呼。方面提供了一種機(jī)制,利用該機(jī)制,可以用一種模塊化的方式指定橫切關(guān)注點(diǎn)。為了充分利用方面的威力,我們需要了解一些基本概念,以便用一般的方式指定和應(yīng)用方面。我們必須能夠:
            以模塊化的方式定義方面
            動(dòng)態(tài)地應(yīng)用方面
            根據(jù)一組規(guī)則應(yīng)用方面
            根據(jù)一種機(jī)制和一種環(huán)境,用于指定將為特定方面執(zhí)行的代碼
            面向方面方法提供了一組語(yǔ)義和語(yǔ)法構(gòu)造來(lái)滿足這些要求,使得無(wú)論編寫的是哪一類軟件,都可以一般地應(yīng)用方面。這些構(gòu)造就是通知(advice)、連接點(diǎn)(join point)和切入點(diǎn)(pointcut)。

     通知
            通知就是方面被調(diào)用時(shí)所執(zhí)行的代碼。通知包好自身的一組規(guī)則。這組規(guī)則規(guī)定了何時(shí)調(diào)用通知,這是與被觸發(fā)的連接點(diǎn)相關(guān)的。

     連接點(diǎn)
            連接點(diǎn)就是可能會(huì)或者可能不會(huì)調(diào)用某個(gè)通知的應(yīng)用程序內(nèi)的特定點(diǎn)。AspectJ中支持的連接點(diǎn):
            被調(diào)用方法時(shí)連接
            在方法執(zhí)行期間連接
            在調(diào)用構(gòu)造函數(shù)時(shí)連接
            在構(gòu)造函數(shù)執(zhí)行期間連接
            在方面通知執(zhí)行期間連接
            在對(duì)象初始化以前連接
            在對(duì)象初始化期間連接
            在靜態(tài)初始化執(zhí)行期間連接
            在引用類的字段時(shí)連接
            在給類的字段賦值時(shí)連接
            在執(zhí)行處理程序時(shí)連接

     切入點(diǎn)
            切入點(diǎn)是用于聲明連接點(diǎn)中關(guān)注AspectJ機(jī)制,用來(lái)發(fā)起一份通知。

    public class MyClass
    {
      
    public void foo(int number,String name)
      
    {
        System.out.println(
    "Inside foo(int,String)");
      }


      
    public static void main(String[] args)
      
    {
        
    //Create an instance of MyClass
        MyClass myObject = new MyClass();
        
    //Make the call to foo
        myObject.foo(1 , "Russ Miles");
       }

    }

            上述類中每一條語(yǔ)句都可看做是潛在的連接點(diǎn)。而下述類中則分別申明了切入點(diǎn)和通知。

    public aspect Some Aspect
    {
      
    //A Pointcut declaration
      pointcut somePointcut():<pointcut logic>;

      
    //A block of Advise
      before:somePointcut()
      
    {
        
    //Do something
      }

    }

    posted on 2008-06-22 23:34 Brian 閱讀(486) 評(píng)論(0)  編輯  收藏 所屬分類: 《AspectJ Cookbook》讀書筆記

    公告


    導(dǎo)航

    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統(tǒng)計(jì)

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲人成免费网站| 免费在线看污视频| 午夜成人免费视频| 亚洲中文无码线在线观看| 四虎1515hh永久久免费| 亚洲黄色网站视频| 精品国产sm捆绑最大网免费站 | 天天操夜夜操免费视频| 97se亚洲国产综合自在线| 亚洲欧洲免费无码| 亚洲av成人一区二区三区观看在线 | 亚洲Av综合色区无码专区桃色| 国产免费伦精品一区二区三区| 伊人亚洲综合青草青草久热| a级毛片免费播放| 亚洲精品免费在线观看| 久久天天躁狠狠躁夜夜免费观看| 中文字幕亚洲精品无码| 国产做床爱无遮挡免费视频| 9久热这里只有精品免费| 久久精品国产亚洲AV嫖农村妇女 | 国产精品免费大片| 亚洲福利电影在线观看| 性色av无码免费一区二区三区| 亚洲国产精品美女久久久久| 久久精品国产亚洲AV不卡| 久久国产乱子精品免费女| 亚洲丰满熟女一区二区v| 四虎国产精品免费视| a级毛片在线视频免费观看| 亚洲欧洲国产综合| 国产jizzjizz免费视频| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 亚洲欧美不卡高清在线| 亚洲伊人久久成综合人影院| 久久国产色AV免费观看| 亚洲av中文无码字幕色不卡| 国产A在亚洲线播放| 四虎成人免费网站在线| 国内永久免费crm系统z在线| 亚洲乱码在线卡一卡二卡新区|