AOP简单介绍

原创 2016年05月30日 15:29:53

  AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。

  当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种 散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。

  而AOP技术则恰恰相反,它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为 “Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为; 那么面向方面编程的方法,就仿佛一把利刃,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的切面,也就是所谓的“方面”了。然后它又以巧夺天功的妙手 将这些剖开的切面复原,不留痕迹。就像下面的效果图,业务线走业务线,切面走切面,他们完好的结合在一起。

  

图解:

  业务线:图中的紫色竖条。
  服务类:图中的绿色横条。 
  服务类:像日志,权限,缓冲等跟具体的业务流程没有关系,没有这些服务,系统也可以正常运转,但是可以切入到每条业务线的某一个部分,增强业务线的功能,例如加入   日志后,可以分析日志,优化系统,或者通过日志发现系统运行时错误。

版权声明:本文为博主原创文章,转载请标明出处,谢谢!

AOP简介和测试

AOP简介  AOP,即面向切面编程,它是Spring中的两个重要内容之一。它是为了把逻辑代码和处理琐碎事务的代码分离开,以便能够分离复杂度。   设想这样一种需求:要实现一个计算器,除了能够进行加...
  • xiangwanpeng
  • xiangwanpeng
  • 2016年12月28日 13:38
  • 350

Spring AOP 简介以及简单用法

Spring AOP 简介以及简单用法如果你去面试java开发, 那么Spring的AOP和DI几乎是必问的问题。那么AOP是什么呢?一. AOP所谓Aop就是 Aspect-OrientedProg...
  • nvd11
  • nvd11
  • 2016年07月06日 00:39
  • 2614

AOP简介与作用

AOPAspect Oriented Programming(AOP)是较为热门的一个话题。AOP,国内大致译作“面向切面编程”。 “面向切面编程”,这样的名字并不是非常容易理解,且容易产生一些误导。...
  • shao_zhiqiang
  • shao_zhiqiang
  • 2016年06月18日 15:14
  • 6631

AOP技术应用和研究--AOP简单应用

为了更好的理解AOP实践和体现AOP的优势,我们始终将OOP和AOP的比较贯穿到下文中。并在最终总结出AOP与OOP相比所拥有的优点,AOP的缺点以及AOP一般的使用场景。   1.1 问题空间到...
  • u014728341
  • u014728341
  • 2014年10月11日 23:53
  • 1949

谈谈对AOP的理解 一——认识AOP

前几篇博客我们说了JAVA的代理模式,从静态代理到动态代理,又到CGLIB代理。从静态代理到动态代理是一种进步,JDK的动态代理和CGLIB的代理,却是各有优缺点,在使用过程中,不是非要决出个胜负,根...
  • wangyongxia921
  • wangyongxia921
  • 2015年05月30日 15:45
  • 7105

Spring核心(四)AOP介绍

AOP即Aspect Oriented Programming的,意为面向切面编程,以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP是横向插入的一种技...
  • wanghuan203
  • wanghuan203
  • 2012年06月10日 19:41
  • 2548

AOP简单介绍

AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和...
  • u010926964
  • u010926964
  • 2016年05月30日 15:29
  • 5233

AOP介绍

 AOP(Aspect Oroented Programming,面向切面编程)是消除代码重复的一种方法。      AOP是OOP的延续,是Aspect Oriented Programming的缩...
  • qin87
  • qin87
  • 2007年05月21日 18:13
  • 843

Spring中IOC和AOP的介绍

前言:控制反转(Inversion of Control,英文缩写为IoC); 面向切面编程(Aspect Oriented Programming,英文缩写为AOP)我们是在使用spring框架的...
  • u013412772
  • u013412772
  • 2016年11月28日 22:31
  • 1193

简单描述对AOP和IOC的理解

(1)  ioc,意思是Inversion ofcontrol,(反转控制),控制反转,就是交换控制权的意思。现在一般不使用这个词,一般使用dependencyinjection(依赖注入)。依赖注入...
  • lizhibin3944
  • lizhibin3944
  • 2013年07月10日 07:14
  • 1275
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AOP简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)