Enterprise Library 6
Enterprise Library 6
基于Enterprise Library 6 AOP(Aspect Oriented Programming)面向切面编程。
第一部分 AOP
------** 引用自网上------**
至今Aspect Oriented Programming已经被开发人员所熟知,其简写AOP,译为面向切面编程。其产生于90年代Xerox PARC实验室编程范式。被称为oop的延续,OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。
AOP可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
AOP 主要包含两个重要部分构成:1匹配规则,在常见AOP框架实现中,有按照方法,类,程序集,包的名称或者固定特征来精确匹配或模糊匹配,最常用简便的标注java的Annocaton,.net的Attribute。2修改逻辑。对于AOP是针对方法边界的修改,一个方法对于我们来说有3个可见的边界,进入、结束,异常。AOP就是在位于这3个边界中插入修改逻辑,实现公用普遍业务的分离。
AOP是OOP的延续。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,提高代码的灵活性和可扩展性,AOP可以说也是这种目标的一种实现。
在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责其它的系统级关注点,例如日志或事务支持。