1.引言
系統(tǒng)設(shè)計(jì)就是針對(duì)某一問(wèn)題通過(guò)需求分析、需求設(shè)計(jì)、代碼編寫、系統(tǒng)測(cè)試后編制的解決這一問(wèn)題的軟件成品。上世紀(jì)80年代OOP的出現(xiàn)在軟件開發(fā)領(lǐng)域中引起了重大變革,其思想是對(duì)業(yè)務(wù)邏輯進(jìn)行劃分(模塊化),再對(duì)每個(gè)小模塊進(jìn)行求解,最后將各個(gè)小模塊的求解通過(guò)一定的方式進(jìn)行整合最終形成整個(gè)系統(tǒng)。但是隨著軟件產(chǎn)品的發(fā)展,人們需求的不斷提高,開發(fā)成本和難度也在隨之增加。面對(duì)著這一系列的問(wèn)題,周期短、易維護(hù)、可擴(kuò)展就成了開發(fā)人員首要考慮的問(wèn)題。對(duì)于一個(gè)大型的系統(tǒng),如日志、安全性、異常處理等需求要用到多個(gè)模塊中,實(shí)現(xiàn)的方法很多:(1)直接在原來(lái)的業(yè)務(wù)邏輯代碼基礎(chǔ)上添加代碼,但這樣既造成了代碼的混亂,又不易閱讀和修改。(2)采用繼承,耦合性強(qiáng),如果父類要進(jìn)行修改,子類也得修改,關(guān)系很死,不夠靈活。(3)組合,這種方式可以實(shí)現(xiàn)多個(gè)類來(lái)回組合,比繼承靈活,但如果有多個(gè)bean,它不能自動(dòng)加載,所以組合也很難實(shí)現(xiàn)。針對(duì)上面的問(wèn)題,本文提出了新的解決辦法:把這些日志邏輯單獨(dú)封裝出來(lái),需要的時(shí)候在配置文件中調(diào)用即可,無(wú)需修改業(yè)務(wù)邏輯,這就是AOP(Aspect Oriented Programming,面向方向編程)。