Java面向方面编程概述[Java编程]
本文“Java面向方面编程概述[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
概述
面向方面的程序计划(AOP)是一个冲动人心的新标准,和已经有十几年历史的面向对象的程序计划(OOP)在软件开辟上有相同的作用. AOP和OOP不是彼此竞争的技术,实际上它们相辅相成的非常和谐.面向对象的程序计划关于建模常见的对象等级体系非常有效. 它的不足之处在于处理跨多个非关联对象模子的常见情形;这时就有AOP的用武之地了.AOP答应你跨关联,利用单独的、彼此之间非常差别的对象模子. 它答应你层次化--而不是嵌入--函数,以便代码更易读、更便于保护. 我们喜好把面向对象的程序计划想象成为自顶向下的软件开辟,而面向方面的程序计划则是自左向右;它们是完好正交的技术,彼此之间相辅相成的非常和谐.
面向对象的程序计划的手段是担当、封装和多态性,而面向方面的程序计划的组件是告诉/监听器(advice/interceptor)、引入(introduction)、元数据(metadata)和切入点(pointcut) . 让我们看看这些定义.
告诉/监听器(advice/interceptor)
一个告诉是被某一事件触发的程序逻辑. 它是可以被插入一个办法调用者和实际的办法之间的行为. 告诉实际上是面向方面的程序计划的关键.这些构造答应你定义横切(cross-cutting)行为.告诉答应你透明地利用象记录和器量这样的事到现有的对象模子中.
在JBoss AOP中,我们利用监听器实现告诉.你可以定义监听器监听办法调用、构造器调用和字段拜候.稍后,我们将研究若何利用这些监听器到一个现有的对象模子中.
引入
引入是一种增添办法大概字段到一个现有类的办法.它们乃至答应你改变一个现有类目前实现的接口并且引入一个混合类实现这些新接口.
引入答应你把多担当带到简单的Java类中.引入的一个重要的利用实例就是你有一个想有运行时间接口的方面.你想跨差别的对象层次利用你的方面,但是你仍旧想利用程序开辟者可以调用指定方面API.
Apple apple = new Apple();
LoggingAPI logging = (LoggingAPI)apple;
Apple.setLoggingLevel(VERBOSE);
引入可以是一个把新API附加于一个现有对象模子的办法.
元数据
元数据是可以从属于一个类的附加信息,大概以静态方法大概在运行时间.当你可以动态地把元数据附上到一个对象给定的实例中的时刻,它将越发有效.当你正在编写可用于任何对象的普通的方面的时刻,元数据显得分外重要,但是程序逻辑必须知道指定类的信息.元数据被利用的一种很近似的情形是EJB标准.在EJB XML配置描写符中,你在一个每办法的底子上定义事件属性.利用程序服务器知道什么时刻何地开始、暂停大概拜托一个事件,因为你已经定义Required、RequiresNew、Supports等办法.在你的EJB类和事件管理程序绑定的元数据里,是bean的XML配置文件.
C#已经把元数据构建入语言中.XDoclet是另一个正在工作的很好的元数据的例子.假如你曾经用过XDoclet来生成EJB文件和配置描写符,你必定知道元数据强盛的功效.Java Community Process(JCP)达成协议,元数据被增添进JDK 1.5 (见JSR175).直到JSR 175真正成为一种标准,一个好的AOP框架才能供应一个机制,声明在运行时间有效的类级元数据.
切入点
假如监听器,引入和元数据是面向方面的程序计划的特点,那么切入点就是把这些特点接洽起来的纽带.切入点奉告面向方面的程序计划框架,哪个监听器将和哪个类捆绑在一同,哪些元数据将用于哪些类,大概引入将被导入到哪些类中. 切入点定义可以用于你的利用程序的类的各种面向方面的程序计划特点.
以上是“Java面向方面编程概述[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |