當前位置:編程學習大全網 - 編程語言 - 在Delphi中應用AOP實現日誌功能[1]

在Delphi中應用AOP實現日誌功能[1]

 AOP現在很火 網上有這許多支持AOP的框架 對於Delphi來說同樣也有MeAOP 不過覺得這些框架太復雜了

 現在有壹個系統 基本上都快結束了 整體上當然是沒有采用什麽AOP的框架 對於這樣的系統能否用上AOP的壹點點好處呢?

 項目組提出在現有的系統上加入日誌記錄的需求 大家壹起來看看我是怎麽來實現這個功能的吧

  AOP簡要說明

 根據網上對AOP的解釋 它具有下面的特征

  將通用功能從不相關類之中分離出來   能夠使得很多類***享壹個功能 壹旦功能發生變化 不必修改很多類 只要修改這個功能就可以了  AOP的核心在於保持橫切關註點的分離

  日誌功能

 這是壹個比較典型的MIS系統 現在編碼基本結束 不過某個開發人員接到了壹個繁瑣又看上去沒什麽技術含量的任務——實現日誌功能 這個開發者就是本人了

 雖然沒什麽難度 但還是設計壹下吧 誰讓我是壹個自詡為高水平的程序員呢

 壹個設計圖就這麽做出來了 其中設計壹個接口ILog來封裝日誌實現的細節 模塊甲乙丙只需要使用接口ILog就可以 滿足了XXX面向對象的設計原則 太完美了!

 泡杯茶 然後開始寫代碼實現這個簡單而龐大的任務 開始編碼了!

 TLog ILog實現比較簡單 在此略去不談 稍微修改壹下以前模塊的代碼 將ILog接口傳入每壹個模塊中

 接下來只需要實現日誌功能的調用就可以了

 模塊甲

procedure TModule acAction Execute(Sender: TObject);begin……Flog LogCommand( 模塊甲 操作壹 );end;

procedure TModule acAction Execute(Sender: TObject);begin……Flog LogCommand( 模塊甲 操作二 );end;

 模塊乙

procedure TModule acAction Execute(Sender: TObject);begin……Flog LogCommand( 模塊乙 操作壹 );end;

 就這樣 寫了大約二十幾個地方 突然覺得自己太可悲了 作為壹個高科技人才就幹這種體力活嗎?   壞味道的出現 在許許多多的地方都出現了Flog LogCommand這樣的函數調用 正是這些函數調用讓我崩潰 在這麽做下去估計我撐不到周末了

  CV大法 已經讓我覺得羞愧加惱怒 系統中到處出現了這樣的重復代碼

 無奈之中 我耷拉著腦袋走到壹個同事桌前

  嘿 救救我吧 我想解脫

  怎麽回事? 同事善意地問道

  事情是這樣子的……

lishixinzhi/Article/program/Delphi/201311/24869

  • 上一篇:2021天津北辰區事業單位的綜合知識有幾類
  • 下一篇:聽說經常用左手可開發右腦?
  • copyright 2024編程學習大全網