概念
Aspect-Oriented Programming(AOP):想想OOP是不是有些熟悉,AOP翻譯過來的意思就是面向切面編程。先來關(guān)注一下涉及到的以下幾個(gè)概念點(diǎn)。
橫切關(guān)注點(diǎn):
存在于項(xiàng)目的絕大多數(shù)業(yè)務(wù)中可以通用的一些輔助性的功能。例如日志、安全、持久化等模塊。它們存在于核心業(yè)務(wù)代碼塊的各個(gè)地方,卻又獨(dú)立于這些核心業(yè)務(wù)邏輯。
如圖所示:Paste_Image.png
切面:
這些橫切關(guān)注點(diǎn)的統(tǒng)一抽象。所以面向切面編程,就是將項(xiàng)目的輔助性功能(如日志、異常處理、緩存處理等)與業(yè)務(wù)邏輯進(jìn)行分離,把繁瑣的輔助性代碼抽離出來不用重復(fù)Copy,使得程序具備更高的模塊化。
實(shí)現(xiàn)方式
靜態(tài)織入
即編譯時(shí)織入,實(shí)現(xiàn)原理是對編譯器做擴(kuò)展,使得在代碼編譯時(shí)編譯器將切面代碼織入到指定的切點(diǎn)。動(dòng)態(tài)織入
即運(yùn)行時(shí)織入,編譯器在編譯時(shí)對切面代碼和業(yè)務(wù)代碼分別獨(dú)立編譯,而在運(yùn)行的時(shí)候由CLR進(jìn)行代碼混合。
.Net平臺的切面實(shí)現(xiàn)——PostSharp
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
延伸閱讀
