連接點(diǎn)是程序執(zhí)行中明確定義的點(diǎn),比如,類接受到方法調(diào)用時(shí),方法調(diào)用時(shí),屬性訪問時(shí)都是連接點(diǎn)的例子,在連接點(diǎn)處可以執(zhí)行預(yù)定義的額外實(shí)現(xiàn)。而要指明在哪些連接點(diǎn)上執(zhí)行,則需要定義切入點(diǎn),切入點(diǎn)可以在程序運(yùn)行時(shí)匹配特定的連接點(diǎn),AspectJ中預(yù)定義了一系列標(biāo)準(zhǔn)切入點(diǎn),包括方法與構(gòu)造器的調(diào)用,接受調(diào)用,執(zhí)行,域的get,set訪問,異常處理,實(shí)例類型匹配,處于類或方法體中,控制流中,調(diào)用者調(diào)用方法,類型的初始化與靜態(tài)初始化,通過這些預(yù)定義切入點(diǎn)的組合可以實(shí)現(xiàn)自定義的、復(fù)雜的切入點(diǎn)。在編譯時(shí),方面中的參考將被轉(zhuǎn)化為標(biāo)準(zhǔn)的方法,類代碼中匹配切入點(diǎn)的連接點(diǎn)將被轉(zhuǎn)化為一個(gè)靜態(tài)的標(biāo)記點(diǎn)。
靜態(tài)橫切是指對(duì)已存在的類型定義引入新的方法,屬性等,與動(dòng)態(tài)橫切不同,靜態(tài)橫切不改變類型的動(dòng)態(tài)行為,而是改變其靜態(tài)結(jié)構(gòu),也即導(dǎo)入(Introduction)。通過在方面代碼中聲明方法,屬性,需要繼承的超類,接口等,在代碼織入時(shí),可以改變應(yīng)用此方面的類的定義。
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||