面向方面程序设计
面向方面程序设计(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)
附加的信息,能在静态或者运行时加到类上或者对象的给定事例中。元数据在编写真正的通用方面时有帮助,这种方面能应用于任何对象,但程序逻辑需要知道类特定的信息。
分享到:
相关推荐
Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理
面向方面编程的四种通知接口面向方面编程的四种通知接口面向方面编程的四种通知接口v面向方面编程的四种通知接口
基于用例的面向方面编程原文电子书,非常好!
面向方面编程技术的研究与实践,高尚,,传统的面向对象编程方法在处理一些关注点分散问题时存在着一定的局限性,面向方面编程增加了软件开发人员解决问题的维度,使编程
AOP 面向方面编程 技术总结 AOP 面向方面编程 技术总结
AOP 面向服务 面向方面编程 AOP 面向服务 面向方面编程 AOP 面向服务 面向方面编程 AOP 面向服务 面向方面编程
面向方面编程和AspectJ(二)面向方面编程和AspectJ(二)面向方面编程和AspectJ(二)
java Spring aop面向方面编程.rar
面向方面编程和jboss,没有人翻译官网的手册,这是doc中文文档。
PHP语言中的面向方面编程实现.pdf
面向方面的编程方法简化, 并优化了对横切关注点的建模。使用面向方面的编程方法, 开发者可以开发出易干设计、理解和维护的 系统, 而且, 使用人意味着提高代码的...该文介绍了面向方面编程产生的背景、从本概念和 特性。
Aspect-Oriented Programming 面向方面编程 简称AOP AOP所要做的事情就是从系统中分离出方面,然后集中实现,从面可以独立编写业务逻辑代码,在系统运行的时候,再将方面代码“织入”到系统中
Spring AOP面向方面编程原理:AOP概念,主要介绍面向对象的概念及原理,及作者的一些理解。
面向方面编程(AOP)的基本概念及其实现技AspectJ。用一个完整的、可运行的实例,详细说明AOP方法厦其具体应用。
AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面编程。 OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决问题的方法中的共同点,是对OO思想的一种补充! 主要的功能是:...
Aspects, 面向方面编程的令人愉悦的简单库 方面 v1.4.2 这是一个令人愉快的,简单的面向方面的面向方面编程的 @steipete 程序。将Aspects的Aspects考虑为steroids的方法。 通过 thinking/instance的方法,可以将代码...
Aspects:一个iOS AOP面向方面编程的简单库
面向方面编程中必要语义约束的研究,杨剑青,杨宗源,面向方面编程(AOP)可以很好地解决非功能性关注点(Non-Functional Concern)的封装问题,但是目前的AOP技术过于灵活,甚至会不恰当地破��
AOP是Aspect Oriented Programming的简写,中文通常译作面向方面编程,其核心内容就是所谓的“横切关注点”。
Spring中IOC(反转控 制) 和 AOP(面向方面编程)