正在加载图片...
513AOP与OOP关系 在面向对象(OOP)的编程中,我们是通过对现实世界的抽象及模型化上来分析问题,也 即把一个大的应用系统分成一个一个的对象,然后把他们有机的组合在一起完成;而在面向 切面(AOP)舶的编程中,分析问题是从关注点的角度出发,把一个软件分成不同的关注点,软 件核心业务逻辑一般都比较集中、单一,这种关注点称为核心关注点,而一些关注属于分散 在软件的各个部分(主要是软件核心业务逻辑),这种关注点称为横切关注点。核心关注点可 以通过传统的OOP方法来实现,而横切关注点则可以通过AOP的方法解决,即把实现相同 功能、解决共性问题并分散在系统中各个部分的模块纳入一个切面中来处理。使用AOP编 程,除了把一些具有共性的功能放到切面模块中以外,还可以在切面中给已有的类增加新的 属性、实现新的接口等。也就是说,不但可以从类的外部动态改变程序的运行流程、给程序 增加特定功能,还可以改变其静态结构 因此,面向对象编程(OOP)解决问题的重点在于对具体领域模型的抽象,而面向切面 编程(AOP)解决问题的关键则在于对关注点的抽象。也就是说,系统中对于一些需要分散 在多个不相关的模块中解决的共同问题,则交由AOP来解决;AOP能够使用一种更好的方 式来解决OOP不能很好解决的横切关注点问题以及相关的设计难题来实现松散耦合。因此, 面向方面编程(AOP)提供另外一种关于程序结构的思维完善了OOP,是OOP的一种扩展 技术,弥补补了OOP的不足。 OOP编程基本流程 1、归纳分析系统,抽象领域模型 2、使用 class来封装领域模型,实现类的功能; 3、把各个相关联的类组装到一起形成一个完整的系统。 AOP编程基本流程 1、归纳分析系统中的关注点,分解切面; 2、按模块化的方式实现各个关注点中的功能,使用传统的编程方法如OOP; 3、按一定的规则分解及组合切面(织入或集成),形成一个完整的系统 514AOP联盟简介 AOP联盟( AOP Alliance)是由Java领域比较知名的一些专家及组织为了推进AOP运用 研究,建立一个通用的AOP规范而成立起来的组织。组织中的成员都是在AOP编程思想及 技术研究中有着比较突出贡献的专家及学者,其中有 AspectWerkz的 Jonas boner、JAC的 Laurent Martelli, Spring的发起人 Rod Jonhson等等 通过AOP联盟的共同研究,可以避免一些重复性工作。AOP联盟提供了一个公共的 AOP API,大多数知名的AOP框架或实现(如 JBoss Aop、 AspectJ、 Spring等)都直接或间 接对其AOP进行了集成或支持。从而可以供各种AOP开发工具及框架能简单在各个AOP 应用环境中应用、移植 AOP联盟API简介 AOP联盟制订了一套用于规范AOP实现的底层API,通过这些统一的底层AP,可以 使得各个AOP实现及工具产品之间实现相互移植。这些API主要以标准接口的形式提供 是AOP编程所要解决的横切交叉关注点问题各部件的最高抽象, Spring的AOP框架中也直 接以这些API为基础所构建。下面我我们来看看当前AOP联盟发布的AOP相关接口。 AOP联盟的AP主要包括四个部分,第一个是aop包,定义了一个表示增强( Advice5.1.3 AOP 与 OOP 关系 在面向对象(OOP)的编程中,我们是通过对现实世界的抽象及模型化上来分析问题,也 即把一个大的应用系统分成一个一个的对象,然后把他们有机的组合在一起完成;而在面向 切面(AOP)的编程中,分析问题是从关注点的角度出发,把一个软件分成不同的关注点,软 件核心业务逻辑一般都比较集中、单一,这种关注点称为核心关注点,而一些关注属于分散 在软件的各个部分(主要是软件核心业务逻辑),这种关注点称为横切关注点。核心关注点可 以通过传统的 OOP 方法来实现,而横切关注点则可以通过 AOP 的方法解决,即把实现相同 功能、解决共性问题并分散在系统中各个部分的模块纳入一个切面中来处理。使用 AOP 编 程,除了把一些具有共性的功能放到切面模块中以外,还可以在切面中给已有的类增加新的 属性、实现新的接口等。也就是说,不但可以从类的外部动态改变程序的运行流程、给程序 增加特定功能,还可以改变其静态结构。 因此,面向对象编程(OOP)解决问题的重点在于对具体领域模型的抽象,而面向切面 编程(AOP)解决问题的关键则在于对关注点的抽象。也就是说,系统中对于一些需要分散 在多个不相关的模块中解决的共同问题,则交由 AOP 来解决;AOP 能够使用一种更好的方 式来解决 OOP 不能很好解决的横切关注点问题以及相关的设计难题来实现松散耦合。因此, 面向方面编程 (AOP) 提供另外一种关于程序结构的思维完善了 OOP,是 OOP 的一种扩展 技术,弥补补了 OOP 的不足。 OOP 编程基本流程 1、 归纳分析系统,抽象领域模型; 2、 使用 class 来封装领域模型,实现类的功能; 3、 把各个相关联的类组装到一起形成一个完整的系统。 AOP 编程基本流程 1、归纳分析系统中的关注点,分解切面; 2、按模块化的方式实现各个关注点中的功能,使用传统的编程方法如 OOP; 3、按一定的规则分解及组合切面(织入或集成),形成一个完整的系统。 5.1.4 AOP 联盟简介 AOP 联盟(AOP Alliance)是由 Java 领域比较知名的一些专家及组织为了推进 AOP 运用 研究,建立一个通用的 AOP 规范而成立起来的组织。组织中的成员都是在 AOP 编程思想及 技术研究中有着比较突出贡献的专家及学者,其中有 AspectWerkz 的 Jonas Bonér、JAC 的 Laurent Martelli、Spring 的发起人 Rod Jonhson 等等。 通过 AOP 联盟的共同研究,可以避免一些重复性工作。AOP 联盟提供了一个公共的 AOP API,大多数知名的 AOP 框架或实现 (如 JBoss AOP、AspectJ、Spring 等)都直接或间 接对其 AOP 进行了集成或支持。从而可以供各种 AOP 开发工具及框架能简单在各个 AOP 应用环境中应用、移植。 AOP 联盟 API 简介 AOP 联盟制订了一套用于规范 AOP 实现的底层 API,通过这些统一的底层 API,可以 使得各个 AOP 实现及工具产品之间实现相互移植。这些 API 主要以标准接口的形式提供, 是 AOP 编程所要解决的横切交叉关注点问题各部件的最高抽象,Spring 的 AOP 框架中也直 接以这些 API 为基础所构建。下面我我们来看看当前 AOP 联盟发布的 AOP 相关接口。 AOP 联盟的 API 主要包括四个部分,第一个是 aop 包,定义了一个表示增强(Advice) 6
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有