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