日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java面向方面编程_面向方面编程的介绍----基本概念

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java面向方面编程_面向方面编程的介绍----基本概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象的編程中常用的概念是:繼承、封裝、多態。在面向方面的編程中常使用的概念是:advices/interceptors,?introductions,?metadata,?and?pointcuts。

AOP?面向方面編程的介紹----基本概念(3)

面向方面的編程思路很簡單。從面向過程、函數的編程到面向對象的編程到面向接口的編程到面向組件、模塊編程的發展歷史我們可以知道,編程方法學的演進是一步一步的擴大了編程考慮的“邊界”。到目前為止我們的編程世界里的宇宙邊界是“類、接口,或者組件”,在這個邊界里,我們認為,一個類實現一個接口,那就不能動態的實現另一個接口,已有類的行為在編譯以前就基本固定,要么是類內部定義的方法,要么是要么是繼承和實現接口繼承過來的方法。但是實際的編程工作中我們碰到了“跨邊界的情況”,需要多個類,接口,組件合作才能完成的工作,比如:多線程并發訪問,程序流集中控制,序列化和程序狀態保持,以及需要多個“類、接口、組件邊界”共同參于才能完成的工作。為了更好的處理多個邊界共同完成同一方面的工作,面向方面的編程出現了。這里的方面,我們可以指:為完成同一任務而需要多個類、接口、組件一起協作工作的綜合。你可以認為方面其實就是一個更大的類,這個類主要由我們OOP中的類、接口組成,當然這些類和接口是如此的親密,以至于他們行為(方法)可以相互轉換。其實這沒什么大不了的,接口的出現不是實現了動態的改變類的行為的嗎?面向方面的編程只是做了一個延伸,把這個改變提升到了接口這個層次上。寫到這里,我感到:耳朵清靜了,但是世界還沒有清靜,因為到實際的運用這種思路編程,還需要很長的時間,和更多工具開發商的支持。

在我以后的文章中我想統一下面的概念:

1、inter-type?declarations??邊界內部類型聲明:Inter-type?聲明在AspectJ中有很多種形式,使用他來描述類之間的關系、類本身成員和結構信息。

2、join?point?連接點:連接點是在程序流程中定義的一個點。

4、crosscutting?concerns??:考慮邊界交叉

5、Pointcuts?連接點集:程序運行中持有對多個連接點狀態的集合。

5、advice?通知點行為:連接點集如同一個包括多個的“結構”,本身不具有行為,其行為靠通知點行為來實現。

以上的名詞主要用于:AspectJ的介紹中。

Advices/Interceptors(消息傳達/消息攔截)

一個“傳達的消息”是一個被特定事件觸發發的邏輯(代碼)。這個“傳達的消息”可以被插入到一個調用者和被調用者隊列之間??梢哉f:傳達消息是面向方面的編程的一個關鍵組成部份。

Introductions(成員推薦)

Introductions?是用來向已有的類增加方法和屬性的一個方法。使用成員推薦你可以把一個現有類實現的接口“介紹”到另一個新的接口中。大家知道,接口的出現就是為了把定義和實現分開,現在使用面向方面的編程,可以做到動態改變既有類的接口,太不可思議了。在java編程中使用“成員推薦”你可以做到讓一個java類實現多重繼承。也就是說,使用“成員推薦”你可以在程序運行的時候來動態改變類的接口,實現不同的行為。就像孫悟空可以不斷變換自己的行為,但是這個孫悟空必須有三個毫毛(被“成員推薦”)??聪旅娴睦?#xff1a;

Apple?apple????????=?new?Apple();

LoggingAPI?logging?=?(LoggingAPI)apple;

Apple.setLoggingLevel(VERBOSE);

使用“成員推薦”:Apple?可以動態的擁有log的功能了。

Metadata(元數據)

元數據是用來描述類本身的一些附加信息和其描述類捆綁在一起,可以靜態的或者再運行的時刻獲得這些類的描述信息。例子參見我的另一片文章(使用反射機制實現動態工廠模式)。EJB中就使用了大量的Metadata。

Pointcuts

如果說:interceptors,?introductions,?and?metadata?是面向方面編程的特點的話,那么?pointcuts?are?就是連接他們在一起的“膠水”。?Pointcuts?是運行在AOP框架,比如:告訴框架如何確認消息傳達、元數據是如何在類中定義的、那些類、接口被“成員推薦”了等等。

后面我們說說:Jboss?4.0中的AOP框架。

總結

以上是生活随笔為你收集整理的java面向方面编程_面向方面编程的介绍----基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。