`
阅读更多
面向方面程序设计
  面向方面程序设计(AOP)是一种编程方法,允许以程序的整体特性来确定它如何编译成可执行程序。要说明AOP的概念,可以将方面编程类比成织布,这时纱线自动织成布。而没有AOP,程序员必须用手来织布。

  AOP是对面向对象程序设计的补充,它允许开发人员动态修改静态的面向对象模型,以生成能成长的系统,来满足新的要求,从而让应用程序在发展过程中适应新的特性。

  AOP为把横切代码抽象提供了解决方案,而横切代码在没有与这些代码功能关联性的情况下跨跃了对象的层次。AOP让你将横切代码抽象进入另外的模块(称作方面),来替代将横切代码嵌入类,然后动态地在需要它的地方应用这些代码。通过定义对象模型中应该应用横切代码的具体地方(称作点切),就能获得横切代码的动态应用。在运行时或编译时,依据你的AOP架构,横切代码注入到特定的点切。从本质上讲,AOP允许你将新的功能引入对象,而对象不需要拥有任何有关引入的知识。

  面向方面软件开发(AOSD)是软件开发的新方法,它要解决其他方法(如面向对象程序设计)中固有的局限性。AOSD通过提供系统的识别、分离、表示和组合等方法,目的是要解决横切关注。横切关注被封装在其他的模块中,称作方面,从而可以促进本地化。这就带来了对模块化的更好支持,因此降低了开发、维护和升级的成本。
  下面是在面向方面程序设计时常用的一些术语:
  方面(Aspect)
  方面是与一个程序的具体特性有关联的子程序。当特性改变时,就会影响到整个程序。方面子程序用作一类称作方面编织器的新编译器的一部分。
  方面是一个与类相似的结构,用于解决横切类的关注。方面可以包含方法和属性、扩展其他的类或方面以及实现接口。
  AOP的方面将告知和点切引入功能单元,与面向对象程序设计使用类来包装属性和方法很相似。
  AspectC++
  对C++编程语言的面向方面的扩展。
  AspectJ
  对Java编程语言的面向方面的扩展。
  忠告(Advice)
  在满足某些条件后运行的程序代码。忠告允许你透明地将诸如登录和规格等应用于对象模型。
  关注(Concern)
  以一种代码结构实现的或者尚未实现的系统中所必需的某些功能或要求。关注的范围上至高级的概念(如安全和服务质量)、下至低级的概念(如高速缓存和普通缓存)。它们可以是功能性的,像特性或商业规则,或者是系统性的,如同步和交易管理。
  横切(Crosscutting)
  如果与两个关注有关的方法相交叉了,那么这两个关注就横切了。通过应用相同的代码,方面横切了传统的类和方法边界。
  截取器(Interceptor)
  用于实现JBoss 4.0中的忠告,JBoss 4.0是一种流行的Java应用服务器。
  引入(Introduction)
  将方法或属性加到已有类上的方式,或者将多个继承带到普通的Java类上,或者将新的API(应用编程接口)连到已有的对象模型。用于JBoss
4.0。
  连接点(Joinpoints)
  程序执行中可以加入增强行为或附加上行为的点,即钩子。例如,连接点能定义对类中特定方法的调用。
  点切(Pointcuts)
  指定连接点和收集这些点上具体的上下文的程序构建。在AOP中,点切定义你的模型中的这些点,在这些点上应用忠告。
  编织(Weave)
  按照提供的一些标准将不同的执行逻辑段组装编译在一起,从而将一个关注装入一个进程。   元数据(Metadata)
  附加的信息,能在静态或者运行时加到类上或者对象的给定事例中。元数据在编写真正的通用方面时有帮助,这种方面能应用于任何对象,但程序逻辑需要知道类特定的信息。
分享到:
评论

相关推荐

    基于用例的面向方面编程原文电子书

    基于用例的面向方面编程原文电子书,非常好!

    面向方面编程方法的研究与应用

    面向方面编程(Aspect-Oriented Programming,AOP)是一种旨在解决软件开发中模块化问题的编程范式。它通过将关注点分离,使得系统中的核心业务逻辑与横切关注点(如日志、事务管理、安全性等)可以独立发展,从而...

    AOP 面向方面编程 技术总结

    面向方面编程(AOP)是一种编程范式,旨在提高软件开发的模块化程度,特别是通过将关注点分离,以便更好地管理复杂系统。AOP的核心概念是“方面”(Aspect),它封装了跨越多个类的横切关注点,如事务管理、日志记录、...

    面向方面编程_AOP_介绍.pdf

    ### 面向方面编程(AOP)介绍 #### 一、面向方面编程产生的背景 在软件开发领域,面向对象编程(OOP)是长期以来的主要编程范式之一。然而,在实际的软件开发过程中,经常会遇到一些跨越多个类或模块的关注点,如...

    面向方面编程和jboss

    面向方面编程(Aspect-Oriented Programming,AOP)是一种编程范式,旨在将关注点分离,使得系统中的各个部分能够更清晰地专注于自己的核心功能,而将横切关注点(如日志、事务管理、安全性等)解耦并模块化。...

    PHP语言中的面向方面编程实现.pdf

    面向方面编程(Aspect-Oriented Programming,AOP)是一种编程技术,它可以有效地提高软件系统的可维护性、复用性和可扩展性。PHP语言作为当前最流行的脚本语言之一,实现面向方面编程可以提高PHP语言的实用性和灵活...

    面向方面编程和AspectJ一.pdf

    ### 面向方面编程(AOP)与AspectJ详解 #### 一、面向方面编程概览 **1. 软件设计的挑战** 随着互联网的普及和发展,软件需求日益增长,软件复杂度也在不断提高。这给软件设计带来了前所未有的挑战。传统的面向...

    面向方面编程和AspectJ(二)

    ### 面向方面编程与AspectJ应用实例详解 #### 一、面向方面编程(AOP)简介 面向方面编程(Aspect Oriented Programming, AOP)是一种编程范式,旨在提高软件系统的模块化程度,通过分离关注点(Separation of ...

    Aspect-Oriented Programming 面向方面编程

    Aspect-Oriented Programming 面向方面编程 简称AOP AOP所要做的事情就是从系统中分离出方面,然后集中实现,从面可以独立编写业务逻辑代码,在系统运行的时候,再将方面代码“织入”到系统中

    Aspects, 面向方面编程的令人愉悦的简单库.zip

    Aspects, 面向方面编程的令人愉悦的简单库 方面 v1.4.2 这是一个令人愉快的,简单的面向方面的面向方面编程的 @steipete 程序。将Aspects的Aspects考虑为steroids的方法。 通过 thinking/instance的方法,可以将代码...

    论文研究-面向方面编程中必要语义约束的研究 .pdf

    面向方面编程中必要语义约束的研究,杨剑青,杨宗源,面向方面编程(AOP)可以很好地解决非功能性关注点(Non-Functional Concern)的封装问题,但是目前的AOP技术过于灵活,甚至会不恰当地破��

    基于面向方面编程的J2ee源码保护

    分析类文件加密技术在保护 J2EE 应用时遇到的动态编译问题和服务器检测问题,指出这 2...利用面向方面编程技术的连接点模型,通过制作一个骨架类解决上述问题,从而扩展加密技术的适用范围,增强对 J2EE 源代码的保护。

    Android-AOPExample, 在Android中,这是面向方面编程的简单例子.zip

    Android-AOPExample, 在Android中,这是面向方面编程的简单例子 aopexample 这是我写的博客文章的一个简单例子,它是安卓系统中面向方面编程的。 方法是测量要执行的方法的长度,因这里基于注释创建了一个方法,以便...

    AOP 面向方面编程

    此PPT主要讲解AOP的来历以及用途,纯理论知识,跟代码结合起来看效果不错

    面向方面编程的Aop介绍

    本教程介绍 AOP 及其基本概念。AOP 及其相关的工具使您可以将基本横切关注点(如日志记录和安全)的代码,与程序的核心应用逻辑相分离。AOP 通过使代码更具有可读性、更不容易出错以及更容易设计和维护,改善了代码...

    论文研究-面向方面软件开发研究.pdf

    系统的某些关注点横切整个系统,无法很好地封装在单个模块里,造成代码混乱和弥散,用面向方面编程AOP可以解决这些问题。首先介绍了现代软件开发方法及其产生的问题;其次,阐述了AOP的基本概念,并结合AspectC 演示...

    论文研究-面向方面的程序设计的研究与应用.pdf

    面向方面编程方法引入了几个核心概念,包括方面(Aspect)、连接点(Join point)、切点(Pointcut)和通知(Advice)。方面是一种模块化横切关注点的方式;连接点是程序执行过程中的某个特定点,比如方法调用;切点...

    SpringFramework中的面向方面编程(AOP),第二部分

    利用Spring框架所提供的面向方面编程(Aspect-OrientedProgramming,AOP)功能,您看到了如何使用before-、after-和基于异常的通知,以及如何使用基于正则表达式的简单切入点。跟踪和记录方面提供了非常不错的上手例子...

Global site tag (gtag.js) - Google Analytics