面向方面编程(aop)

面向方面编程(aop)

ID:5396076

大小:254.50 KB

页数:22页

时间:2017-11-09

面向方面编程(aop)_第1页
面向方面编程(aop)_第2页
面向方面编程(aop)_第3页
面向方面编程(aop)_第4页
面向方面编程(aop)_第5页
资源描述:

《面向方面编程(aop)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AOP(面向方面的编程)技术在本讲您能了解如下内容AOP技术概述AOP中的关注点AOP是OOP的扩展技术AOP的具体用途为什么要提供AOP利用AOP能够更好地满足OCP原则1、面向方面的编程(AOP---Aspect-OrientedProgramming)(1)什么是Aspect?中文直译通常是“方面”(更准确的应该为“切面”),但这个名词容易使人混淆或者太抽象。它其实是一种编程技术(2)应用AOP的主要目的----尽量分离“技术问题实现”和“业务问题实现”它允许开发者能够对横切关注点进行模块化设计----“切面”的意义在于将业务逻辑中复杂问题分离成不同层面,使其实现统一集中

2、的管理。能够实现分散关注,将通用需求功能从不相关类之中分离出来。这样将能够更好地遵守“单一职责”原则;同时,能够实现代码重用。一旦行为发生变化,不必修改很多类,只要修改共享的类。您理解其内涵吗?您觉得抽象难懂吗?请继续…2、AOP技术起源(1)OOP技术的简要回顾开发者可以用一组对象以及这些对象之间的关系将软件系统形象地表示出来----利用OOP能够更好地对系统进行抽象和描述,在设计规模大、逻辑复杂的系统时,开发周期反而能变的更短请见文档中的说明(2)面向对象设计的主要问题是,它本质是静态和封闭的静态的----很难达到动态地添加新的功能方法封闭的----任何需求的细微变化都可能

3、需要对原有的类继续修改,从而对开发进度造成重大影响。(3)利用设计模式进一步完善OOP解决OOP所面临的问题一个常用的方法是应用设计模式应用设计模式所体现出的优点---设计出灵活、可扩展、可重用的类库、组件,乃至于整个系统的架构比如在GOF中提供“装饰器模式”来达到动态地添加新的功能方法希望大家有时间系统地掌握“GOF”设计模式和J2EE核心设计模式!(4)应用设计模式同样所面临的问题然而鉴于对象封装的特殊性,“设计模式”的触角始终在接口与抽象中大做文章,而对于对象内部则无能为力。比如在GOF中强调“面向接口”编程也就是希望我们的系统能够有更好的灵活性和可扩展性---分离“变化

4、”和“不变”部分,这样在一定的程度上能够“适应变化”。因为,我们希望能够动态地调整对象的内部结构!同时也能够对对象中的方法执行过程能够控制---比如,能够拦截某方法,从而允许在方法执行之前或者执行以后,能够做点其它的事情!OOP的“静态”特性很难达到此目的!(5)AOP技术的产生早在1990年开始,来自XeroxPaloAltoResearchLab(即PARC)的研究人员就对面向对象思想的局限性进行了分析随着研究的逐渐深入,AOP也逐渐发展成一套完整的程序设计思想,各种应用AOP的技术也应运而生。3、AOP是什么样的编程方法(1)首先了解什么是“分离关注”所谓的分离关注就是将

5、某一通用的需求功能从不相关的类中分离出来同时能够使得很多类共享该通用的需求实现-----一旦该实现发生变化,只要修改这个“实现”就可以而不影响其它主功能实现。(2)AOP就是这种实现分散关注的编程方法它可以解决OOP和过程化方法不能够很好解决的横切(crosscut)问题(3)横切问题主要是指系统中的下面的各个方面的技术实现:事务、安全、日志、并发锁等横切关注。当未来系统变得越来越复杂,横切关注点就成为一个大问题的时候,AOP就可以很轻松的解决横切关注点这个问题。(4)AOP实际是GoF设计模式的一种扩展设计模式所追求的是降低代码之间的耦合度-----设计模式孜孜不倦追求的是调

6、用者和被调用者之间的解耦,增加程序的灵活性和可重用性AOP实际上就是设计模式所追求的目标的一种实现或者说AOP实际是GoF设计模式的延续----分离“系统核心”和“外围功能”的各自实现。您了解GOF及J2EE核心模式吗4、AOP主要是把系统作为一批关注点来实现(1)应用系统是由大量的关注点所构成的比如,持久化、系统安全、日志记录、应用的业务逻辑通常被认为是应用需要解决的问题。因此,他们通常作为各自的关注点被看待和被处理。而从整个系统角度考虑,一个系统往往是由大量的关注点构成的。(2)我们需要整理和分离系统的各个关注点(3)应用系统中的常见的各个关注点---通过分层能够更好地隔离

7、各个关注点您了解为什么要这样吗5、AOP是OOP的一种扩展技术OOP与AOP相互配合---它们应该相互配合,而不是相互排斥(1)AOP和OOP在应用上的不同点AOP是针对具体业务领域中的“技术逻辑”的实现;而OOP针对业务对象及其关系、业务逻辑的处理。(2)OOP擅长解决纵向方面的问题因为OOP允许我们定义从上到下的关系(纵向),但并不适合定义从左到右的关系(横向)OOP在实现对公共行为进行建模时,展示了强大的功能,但利用它对跨越多个模块的共性的“行为”进行建模时,OOP则显得无能为力。(3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。