導航:首頁 > 編程語言 > C面向切面編程aop例子

C面向切面編程aop例子

發布時間:2025-01-20 16:30:24

1. aop思想是什麼

AOP就是「面向切面編程」。只有當你真正的理解OOP之後,才可以理解AOP的思想。

這個思想,不是一兩句就能將的明白的。用個生活中的例子:

人的手可以寫字,並且可以用很多中筆來寫字。例如,鋼筆、鉛筆、毛筆等等。(這里抽象的說)如果我們要用到人的手寫字的時候,就必須提供給手很多中筆,可是每種筆的類型有各自不同,我們說筆有很多不同的屬性的功能。如果才能讓我們的手拿到任何一種筆都可以寫字呢,我們可以這樣做。將鋼筆、鉛筆、毛筆等等筆定義一種公共的「筆」的類型,讓我們的手在使用筆的時候,只需要知道要使用一個筆來寫字,而不需要關心使用什麼筆來寫。而決定給這只手用的筆的類型,就是你的事情了。

抽象成簡單的代碼:
interface Pen{}

class GangBi implements Pen{}
class MaoBi implements Pen{}
class QianBi implements Pen{}

class Human{
void usePen(Pen pen){}
}

這個概念超級抽象。不過,學習Spring框架可以快速的來理解這個概念。

2. 什麼是aop

AOP為Aspect Oriented Programming的縮寫,是面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP的延續,是軟體開發中的一個熱點,也是Spring框架中的一個重要內容,是函數式編程的一種衍生范型。

AOP的出現彌補了OOP的這點不足,AOP 是一個概念,一個規范,本身並沒有設定具體語言的實現,AOP是基於動態代理模式。AOP是方法級別的,要測試的方法不能為static修飾,因為介面中不能存在靜態方法,編譯就會報錯。

AOP可以分離業務代碼和關注點代碼(重復代碼),在執行業務代碼時,動態的注入關注點代碼。切面就是關注點代碼形成的類。Spring AOP中的動態代理主要有兩種方式,JDK動態代理和CGLIB動態代理。JDK動態代理通過反射來接收被代理的類,並且要求被代理的類必須實現一個介面。

(2)C面向切面編程aop例子擴展閱讀

AOP實現的關鍵在於AOP框架自動創建的AOP代理,AOP代理主要分為靜態代理和動態代理,靜態代理的代表為AspectJ。而動態代理則以Spring AOP為代表,靜態代理是編譯期實現,動態代理是運行期實現,可想而知前者擁有更好的性能。

靜態代理是編譯階段生成AOP代理類,也就是說生成的位元組碼就織入了增強後的AOP對象;動態代理則不會修改位元組碼,而是在內存中臨時生成一個AOP對象,這個AOP對象包含了目標對象的全部方法,並且在特定的切點做了增強處理,並回調原對象的方法。

閱讀全文

與C面向切面編程aop例子相關的資料

熱點內容
世界上最快的動物是什麼app 瀏覽:889
一打開微信文件夾就卡 瀏覽:265
什麼軟體可以做指標源碼 瀏覽:464
java程序員飽和 瀏覽:150
路由器怎麼加密更安全 瀏覽:695
內存卡加密卡是什麼意思 瀏覽:695
幫別人做app需要注意什麼 瀏覽:668
android獲取string字元 瀏覽:181
python中的計數器 瀏覽:622
海地加密驅動安裝 瀏覽:844
慧凈電子12單片機開發板 瀏覽:940
什麼網段伺服器好 瀏覽:598
伺服器商店怎麼造 瀏覽:934
有什麼跳鬼步舞的app 瀏覽:250
倚天2如何自己搭建伺服器 瀏覽:553
我的世界如何讓伺服器刷神寵 瀏覽:624
為什麼程序員要盡量進大廠 瀏覽:3
phpfiletype 瀏覽:936
PHP用戶登錄管理系統源碼 瀏覽:199
你適合做程序員嗎 瀏覽:896