所謂AOP,即面向切面編程,它和我們熟知的面向對象編程或面向過程編程有何區別?
首先,AOP只是面向對象或面向過程的一種補充,它無法取代後者。
面向對象的側重點就是對象,那麼面向切面的側重點就是切面了。
那何為切面?我們可以通過一個小例子來看一下:
假設我們的程序有一個增加用戶的功能:
![談談AOP(面向切面編程)](http://p2.ttnews.xyz/loading.gif)
現在我們的需求是要在增加用戶之前記錄一下日誌,那麼我們可以這麼寫:
![談談AOP(面向切面編程)](http://p2.ttnews.xyz/loading.gif)
這樣可以雖然可以完成功能,但是假設我們的程序有一百個類似的功能,都需要在執行之前記錄日誌,這樣還不得累skr人?
這時候,AOP就來解放我們了。
假設有這樣一個類,它有一個before方法,然後我們可以通過配置的方式聲明哪些類的方法需要在執行之前調用這個before方法,豈不美滋滋?
這時候,addUser這個方法就可以被看作一個切面。
所以AOP的應用場景各位應該也都能瞭解了。
我們將在下一篇文章中探秘AOP實現原理
閱讀更多 最後一個NPE 的文章