面向方面编程浅谈

随着计算机越来越广泛地应用于各个行业,应用软件的规模不断扩大,复杂度不断提高,为适应用户需求的变化,在软件的开发方法上进行了一系列的研究,以提高软件的扩展性,可维护性,易用性等来提高软件质量,从面向过程的程序设计方法, 到现在比较流行的面向对象程序设计方法,再到近几年新提出的面向服务的设计思想,无不体现了人们在这方面的努力,使软件各功能内部高内聚,而之间又松耦合。
 
虽然面向对象的设计方法,以现实世界为依托,结合业务逻辑,将各种数据及数据处理抽象至各种对象,以于现实世界相对应,很大程序上提高了软件的可理解性,方便了软件设计及维护。通过面向对象的方式,将各种数据及数据处理封装至对象,由对象提供不同的服务来支撑各种不同的软件应用。
 
虽然面向对象的设计方法可以将功能高度聚合至对象中,却不能将使用该对象的调用聚合在一起重构这个应用程序,因此带来了另一个问题,即代码分散。假设一对象提供了基础服务,那么在软件内部需要使用该基础服务的地方都将使用该对象。
 
这种代码分散现象在一定程度上增加了软件的发展,维护及更新的成本。为解决代码分散的问题,在1997年欧洲面向对象编程大会上,施乐公司提高了一种新的软件设计方法:AOP(Aspect Oriented Programming,面向方面的编程方法)。
 
AOP主要特点在于将某一系统特性提供了一种代码融合的方式,即在程序执行某处操作时之前,或之后,或替代执行某系统特性代码。在AOP中有以下几个概念:
 


接合点 (Joinpoint) — 代码中定义明确的可识别的点。
 
切点 (Pointcut) — 通过配置或编码指定接合点的一种方法。
 
通知 (Advice) — 表示需要执行交叉切割动作的一种方法
 
混入 (Mixin) — 通过将一个类的实例混入目标类的实例引入新行为。
 
AOP的主要思想通过定义Point Cut 与Advice,在joint Point被执行时,执行Advice处方法,有点截获的味道

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值