AOP的通俗理解

2021-08-17 09:27:03 字數 945 閱讀 3335

物件導向程式設計更多的操作是在縱向部分(即繼承,介面實現之類),這就導致一些需要在橫向上(即業務**方法中的前後)嵌入的非核心**得在每乙個方法上都要去寫(比如日誌,許可權,異常處理等)。它們散布在各方法的橫切面上,造成**重複,也不利於各個模組的重用(畢竟,不同方法還是有所區別)。

aop就是為了解決這種男題而生的

從aop這個英文縮寫來看就好。。。a是一把刀,把p的突出部分切出來(模擬於圍繞方法設定的日誌,許可權等需求,它們都是屬於核心方法外的通用服務),它們有乙個共性—-圓溜溜的(就像乙個工具箱中的扳手,鉗子,螺絲刀之類的),所以能把它們集合成一塊兒(它們都具有』工具『的屬性),就是中間的o。重新給接回去的時候,就著不同的需求,用o中不同的工具就好(通過不同的方法或註解指明)。

概念陳列:

目標物件,aop**物件,連線點,切入點,***,通知,織入,

假設有乙個物件a(目標物件),外部的請求人b要想訪問到a,需要通過乙個安檢過程(連線點,比如驗證許可權m1,登入密碼m2,身份識別m3等)。b開始訪問後,首先得經過第一層的安檢(準備走誰(introductioninterceptor)的哪一層安檢(pointcut–》指定到具體的安檢流程),由你定義的interceptor***決定),即許可權驗證m1(切入點)。通過這一層後,監控整個訪問過程的你可以決定是否要向大家夥兒通報外部請求的訪問情況【像:b那孫子進來啦 or b那孫子帶著貪玩藍月系來嘞 or b那小子是渣渣輝的部下】(在訪問開始前,還是結束後,還是全程播報—->這就是』通知『)。於a而言,他覺得直接跟b接觸可能不太安全,所以a把自己的一些許可權給到了**物件proxy_a,並讓proxy_a去正面』剛(也即織入,a間接的給自己加持了一副鎧甲)『b(或許是來者不善乜)。proxy_a是怎樣產生的呢?這就是aop動態**的輔助了。簡單來講,不論你是什麼**—》proxy_某個目標物件,只要是通過jdk或者cglib的**副本傳送門(模擬於抽象)進入到剛b的』對戰場景『中,那麼,他都算是a(或者其他目標物件)的代言人。

AOP術語(通俗易懂型)

查閱了很多關於aop術語的解釋,專業詞彙太多,太繞腦,實在讓人能在很快的時間內理解,這段時間看了某教程,那老師講的個人覺得太好了,通俗易懂,下面讓我分享一下吧!1.連線點 joinpoint 連線點 類裡面哪些方法可以被增強,這些方法就稱為連線點,如orders類中所有的方法都可以被增強那麼這些方法...

通俗的理解遞

在學習遞迴的過程中,個人感覺真的晦澀難懂,遞迴就是函式自己呼叫自己。遞迴程式的基本步驟 1.初始化演算法。遞迴程式通常需要乙個開始時使用的種子值 seed value 2.要完成此任務,可以向函式傳遞引數,或者提供乙個入口函式,這個函式是非遞迴的,但可以為遞迴計算設定種子值。3.檢查要處理的當前值是...

shell的通俗理解

引自 一 shell的含義 首先shell的英文含義是 殼 它是相對於核心來說的,因為它是建立在核心的基礎上,面向於使用者的一種表現形式,比如我們看到乙個球,見到的是它的殼,而非核。linux中的shell,是指乙個面向使用者的命令介面,表現形式就是乙個可以由使用者錄入的介面,這個介面也可以反饋執行...