談談你對AOP的理解
阿新 • • 發佈:2022-04-04
談談你對AOP的理解
系統是由許多不同的元件所組成的,每一個元件各負責一塊特定功能。除了實現自身核心功能之外,這些元件還經 常承擔著額外的職責。
例如日誌、事務管理和安全這樣的核心服務經常融入到自身具有核心業務邏輯的元件中去。這些系統服務經常被稱為橫切關注點,因為它們會跨越系統的多個元件。當我們需要為分散的物件引入公共行為的時候,OOP則顯得無能為力。
也就是說 OOP允許你定義從上到下的關 系,但並不適合定義從左到右的關係。例如日誌功能。
日誌程式碼往往水平地散佈在所有物件層次中,而與它所散佈到的物件的核心功能毫無關係。 在OOP設計中, 它導致了大量程式碼的重複, 而不利於各個模組的重用。 AOP:將程式中的交叉業務邏輯(比如安全,日誌,事務等),封裝成一個切面, 然後注入到目標物件(具體業 務邏輯) 中去。AOP可以對某個物件或某些物件的功能進行增強, 比如物件中的方法進行增強,可以在執行某個方法之前額外的做一些事情,在某個方法執行之後額外的做一些事情