面試:什麼是AOP?AOP中最重要的概念是什麼?

AOP(Aspect Oriented Programming),也稱爲面向切面編程,是OOP的一種延續,目的就是將與主業務無關的事情放到代碼外去做,儘可能減少代碼臃腫,並減少代碼的重複部分。OOP通過繼承大幅度的減少了類中重複的代碼,AOP通過切面減少了方法外或方法中的橫切邏輯代碼

AOP最常用的地點就是日誌,假設有一個加工流水線,分別是負責洗菜的A,負責做菜的B和負責上菜的C,通常用戶點一份菜需要三分鐘,但偶爾會出現三小時都沒法上菜的情況,這就需要負責人去研究是那個環節出現了問題,比如讓每個人把工作開始和結束的時間記下來,最後交給負責人去研究到底是誰出問題了,但這樣最大的問題是需要每個人都參與到日誌的記錄中,一個人做的越多,出錯的機率就越大,所以就可以僱一個專門記日誌的日誌專員,每天跟在員工後面,進行記錄,這就是AOP。

AOP主要解決了再不改變原有代碼的前提下,減少了代碼耦合,避免橫切邏輯代碼發送重複

AOP中最重要的概念有五個,分別是:通知(執行時機和執行內容),連接點(執行過程中可插入切面的點),切入點(在何處插入),切面(通知 + 切點)織入

通知:何時做什麼,(何時何事)

連接點:可以在執行過程中插入的點

切入點:在何處插入(何地)

切面:通知和切點的合集就是切面(在何時何地完成何事)

引入:可以向指定類添加方法或屬性

織入:將切面織入到目標對象並創建代理對象的過程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章