|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。
aspect能够扫除代码净化吗?利用AspectWerkz框架举行日记纪录是第一步
简介:面向方面编程(Aspect-orientedprogramming,AOP)经由过程将在使用程序局限内起感化的功效分别出来而不是放到某个类大概包中,可使代码坚持干净。日记纪录是这类功效的一个经常使用的例子。AOP是不是能够匡助举行日记纪录?在本文中,开辟职员和AOP反对者DennisSosnoski对AspectWerkz框架的利用举行剖析以找出谜底。
在我的关于Java编程静态性的文章中,展现了怎样用classworking手艺完成对程序举动的体系改变。这类办法是Java平台上用面向对象编程(AOP)举行的年夜多半事情的基本。在本文中,我将展现如何用AOP框架在classworking之上构建更高条理以完成一样的体系改动,从而进步利用的便利性。
AspectWerkz先容
Java平台有很多AOP框架。在本系列文章中,我选择利用AspectWerkz框架,这是一个由BEASystems援助的开放源代码项目。AspectWerkz不是针对Java手艺的最早的AOP——这项声誉属于IBM撑持的Java编程言语的AspectJ扩大——可是作为一种疾速、壮大且天真的,与尺度Java代码分离的AOP框架,AspectWerkz取得了愈来愈多的存眷。AspectWerkz和AspectJ团队比来公布兼并他们的事情,以是将来我们将会看到这两种Java编程的AOP办法的最好的特征分离到一个产物中。我将在本专栏中跟踪这一点,可是如今我将保持利用基础的AspectWerkz框架。
注重:不要错过新的AOP@Work专栏,它对AOP的实践利用做了很好的先容。它入手下手于2005年2月,由五位主要的AOP专家执笔,这个为期一年的系列中的每篇文章城市供应能够当即加以使用的知识。
当AOP撑持者列出一样平常开辟的AOP使用程序时,仿佛老是用到了日记纪录。在典范企业使用程序代码的很年夜部分中城市利用日记纪录,明显这是必要存眷的内容。日记纪录代码与使用程序的次要目标有关,而且它另有大概对代码发生很年夜搅扰。这些特性分离在一同使得日记纪录成为构建aspect的很好候选对象。我将剖析一个完成日记纪录和功能器度相分离的aspect,以察看将aspect范式使用到这类范例的成绩的情形。
AspectWerkz基本
AspectWerkz网站供应了大批文档和利用示例,和关于利用AspectWerkz的文章的链接。我禁绝备在这里反复这些内容,可是我将扼要先容我以为最主要的观点:pointcut、aspect和advice。
pointcut基础上只是一其中断使用程序实行的(由源代码界说的)“一般”流程并做一些分歧的事情的中央。AspectWerkz撑持与Java代码布局相干的很多范例的pointcut,包含办法挪用大概实行、字段get/set和非常处置器实行,和组合(包含特定实行路径中的代码)。
用AspectWerkz术语来讲,一个aspect就是一个Java类,它能够作为交织存眷(crosscuttingconcern)的方针。让一个类成为aspect不必要完成特别的接口,可是必要特定的办法署名以使类作为一个aspect被会见。一样平常来讲,但愿aspect类在尺度使用程序类条理布局以外,由于大概只是经由过程AspectWerkz框架利用它们,不外,关于它们地点的地位一样没有特别请求(在运转时类路径中除外)。
advice是aspect类中的一个办法,在pointcut处用它来做“某些分歧的事务”。advice的默许办法署名承受一个参数,该参数供应关于中止的pointcut的信息。清单1显现了一个aspect类的例子,它界说了在办法挪用上,将被用作前advice和后advice的两个办法。
<p>
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 |
|