|
AOP是什么?
AOP是OOP的延續(xù),ASPect Oriented Programming的縮寫,即面向方面編程。AOP是GoF設(shè)計(jì)模式的延續(xù),設(shè)計(jì)模式追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP也是這種目標(biāo)的一 種實(shí)現(xiàn)?! ?br /> 案例:在應(yīng)用程序中,我們經(jīng)常會(huì)對(duì)某一段程序做異常處理,或者是把一個(gè)方法的調(diào)用所消耗的時(shí)間體現(xiàn)在日志中,如果我們對(duì)每個(gè)方法都寫具體的實(shí)現(xiàn),我想并不是一件輕松的事情。對(duì)于異常處理來講,其實(shí)我們平常編程很少去捕獲具體的異常,當(dāng)然特殊程序除外,例如客戶端捕獲WCF異常時(shí)最好捕獲CommunicationException,TimeoutException,Exception。否則一般都會(huì)直接捕獲Exception,因?yàn)楹芏喈惓M且饬现獾漠惓?。?duì)于記錄方法調(diào)用時(shí)間問題,我想也非常麻煩,下面例子簡(jiǎn)單的展示了記錄時(shí)間:當(dāng)你需要對(duì)多個(gè)方法都需要記錄時(shí)間時(shí),這些代碼往往讓人感覺有重構(gòu)的必要。
Stopwatch sw = new Stopwatch();
sw.Start();
//方法執(zhí)行.....
sw.Stop();
WebLog.SquareLog.CommonLogger.Error("取積分廣場(chǎng)首頁酒店數(shù)據(jù)用時(shí):"+sw.ElapsedMilliseconds .ToString ()+"毫秒");
NET技術(shù):利用AOP重構(gòu)代碼,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。