知识大全 在Delphi中应用AOP实现日志功能[1]

Posted

篇首语:不磨不炼,不成好汉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Delphi中应用AOP实现日志功能[1]相关的知识,希望对你有一定的参考价值。

在Delphi中应用AOP实现日志功能[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  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大法 已经让我觉得羞愧加恼怒 系统中到处出现了这样的重复代码

  无奈之中 我耷拉着脑袋走到一个同事桌前

   嘿 救救我吧 我想解脱

   怎么回事? 同事善意地问道

   事情是这样子的……

cha138/Article/program/Delphi/201311/24869

相关参考

知识大全 对spring的aop理解

   问题   问题想要添加日志记录性能监控安全监测   最初解决方案   最初

知识大全 Spring AOP在DWR安全上的应用

SpringAOP在DWR安全上的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 关于AOP的应用实例

关于AOP的应用实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  开发环境:Eclipse+J

知识大全 Spring AOP 实现原理与CGLIB应用

SpringAOP实现原理与CGLIB应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    简

知识大全 在Delphi数据库应用程序中常见错误

在Delphi数据库应用程序中常见错误  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Delph

知识大全 在Delphi中开发使用多显示器的应用程序

在Delphi中开发使用多显示器的应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Wind

知识大全 Delphi中ScriptControl的高级应用

Delphi中ScriptControl的高级应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在

知识大全 实现应用程序的文件拖放功能

  在Delphi中有许多控件支持拖放操作但仅限于应用程序内部而不能实现从Windows环境里向应用程序拖放文件本文将要介绍的就是如何用Delphi编写支持文件拖放的应用程序由于主要使用Windows

知识大全 AOP概念解析

AOP概念解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为什么要区分JEE容器和JEE应用

知识大全 SSH集成框架下真正实现Spring AOP拦截功能

SSH集成框架下真正实现SpringAOP拦截功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!