AOP的概念已經熱了很久了,我一直不太關注,也不太理解這個面向方面編程中的方面是什么意思。由于AOP和OOP僅一字之差,所以在網上看到大量的文章來拿這兩個作對比,看完后還是稀里糊涂的。
這段時間開始拿Spring做新產品,于是開始仔細研究AOP。這才發現AOP和OOP講的根本不是同一類的東西。
AOP中的方面是指問題的一個方面,相對于問題的全部來說的。AOP就是針對問題的一個方面編程。它把一個問題(或者說是需求)從程序級別上拆分成幾個方面,讓程序員在編程時只關注自己應當關注的方面,而完全忽略其它的方面。最后由AOP框架來組合不同程序員(或者說是不同模塊)的程序。
從這點上來說,AOP的確對模塊化開發有很大的裨益。
一、完全消除了編碼時模塊之間的依賴,解決了團隊開發中一龍攔住千江水的瓶頸問題。當然,做到這一點除了AOP外,還必須做到面向接口編程。
二、可以在任意階段,向已有功能模塊中填加新功能,且不侵入原有功能。