橫切關注點

橫切關注點指的是一些具有橫越多個模組的行為,使用傳統的軟件開發方法不能夠達到有效的模組化的一類特殊關注點

面向切面的程式設計(AOP)中,橫切關係是程式中和其他模組有聯絡的『切面』。這些關係在程式模組化的設計和實現中無法被自然地分解到模組中,導致或代碼過於分散,或代碼衝突,或者兩者都有。

舉個例子來說,編寫一個處理醫生記錄的app,這些記錄的索引是核心模組,同時關於儲存記錄或用戶資訊的數據的歷史紀錄檔,或者登入的驗證系統,由於和app中大部分模組都有關系所以成為了『橫切關係』。

背景

橫切關係是那些和程式中大部分模組都有聯絡的部分,它們形成了切面開發的基礎單元。這樣的橫切關係部分不能自然得適配物件導向程式設計理念和程序導向編程理念。

程式內那些衝突或者內部依賴過度一般都和橫切關係有直接聯絡,由於過程性和功能性程式語言的結構完全是步驟化呼叫,也就沒有語法可以同時進行功能實現和橫切關係處理,這樣一來,解決橫切關係的代碼就在程式中分散或者重複執行,最終導致了程式模組化的喪失;

面向切面的程式設計(AOP)的目的是將這些橫切關係封裝進切面來保持程式的模組化,也就可以保持自然得模組獨立性和處理橫切關係代碼的可復用性。通過這些對橫切關係的設計處理,作為對於物件導向程式設計的一個補充,軟件工程的模組化和維護簡單化的優勢仍然可以保持。