官术网_书友最值得收藏!

第3章
面向切面概念和實踐

在軟件開發領域,基于面向對象編程(Object Oriented Programming,OOP)的思想和實踐,應用程序被劃分為多個類和模塊。我們通過引入接口來實現松散耦合的設計,而封裝和繼承使得我們可以隱藏對象數據并擴展功能。但反過來講,隨著系統的演進,OOP的這些特點也增加了系統的復雜性。為了解決這個問題,我們開始遵循將應用程序劃分為不同邏輯層和模塊的設計原則,常見的如Web服務層、業務服務層和數據訪問層。

但是,即使將功能劃分為不同的層,所有層中也可能需要某些通用的功能,例如安全性、日志記錄、緩存和性能監視,這些功能被稱為橫切關注點(Crosscutting Concern)。在OOP中,這些橫切關注點的代碼與業務邏輯處理代碼往往是混合在一起的,圖3-1所示就是一個典型的場景。

059-1

圖3-1 業務代碼與橫切關注點代碼混合示意圖

圖3-1展示了在業務服務層組件的實現過程中,事務處理和安全控制代碼與業務邏輯代碼混合在了一起。這樣的實現降低了代碼的可重用性,增加了維護成本,并且違反了單一責任原則。

那么,如何有效實現這些橫切關注點?這就需要引入面向切面編程(Aspect Oriented Programming,AOP)的設計理念。在本章中,我們將討論Spring容器中AOP的概念以及實現這些概念的方法和實踐。

主站蜘蛛池模板: 临澧县| 西乡县| 富锦市| 阿拉尔市| 河源市| 措美县| 娄底市| 宜丰县| 荣成市| 天峻县| 道真| 津南区| 章丘市| 古浪县| 西和县| 高邮市| 绥德县| 西畴县| 淮安市| 张家界市| 楚雄市| 和平县| 隆子县| 克东县| 健康| 桐庐县| 佛冈县| 甘孜| 霍林郭勒市| 瓦房店市| 沛县| 都昌县| 武定县| 柳州市| 西盟| 千阳县| 汉川市| 吴江市| 老河口市| 毕节市| 新竹市|