面向方面的編程
面向方面的編程,即 AOP,是一種編程技術(shù),它允許程序員對橫切關(guān)注點或橫切典型的職責(zé)分界線的行為(例如日志和事務(wù)管理)進行模塊化。AOP 的核心構(gòu)造是方面,它將那些影響多個類的行為封裝到可重用的模塊中。
AOP 和 IOC 是補充性的技術(shù),它們都運用模塊化方式解決企業(yè)應(yīng)用程序開發(fā)中的復(fù)雜問題。在典型的面向?qū)ο箝_發(fā)方式中,可能要將日志記錄語句放在所有方法和 Java 類中才能實現(xiàn)日志功能。在 AOP 方式中,可以反過來將日志服務(wù)模塊化,并以聲明的方式將它們應(yīng)用到需要日志的組件上。當(dāng)然,優(yōu)勢就是 Java 類不需要知道日志服務(wù)的存在,也不需要考慮相關(guān)的代碼。
IOC,一般翻譯為控制反轉(zhuǎn),也就是一個類將一些工作交給framework(或者控制器)來做。從本質(zhì)上講是面向?qū)ο蟮脑O(shè)計原則之一——接口可具體實現(xiàn)的分離的一個具體體現(xiàn),對象之間解耦的一種方法。