`
阅读更多
面向方面程序设计
  面向方面程序设计(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)
  附加的信息,能在静态或者运行时加到类上或者对象的给定事例中。元数据在编写真正的通用方面时有帮助,这种方面能应用于任何对象,但程序逻辑需要知道类特定的信息。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics