面向方面的程序设计PPT文件格式下载.ppt
- 文档编号:15103927
- 上传时间:2022-10-27
- 格式:PPT
- 页数:56
- 大小:1.32MB
面向方面的程序设计PPT文件格式下载.ppt
《面向方面的程序设计PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《面向方面的程序设计PPT文件格式下载.ppt(56页珍藏版)》请在冰豆网上搜索。
是指一个特定的目标、概念或者兴趣域。
关注点:
n从技术的角度,软件系统分别包括从技术的角度,软件系统分别包括核心级和系统级核心级和系统级的关的关注点。
注点。
n核心级关注点是系统要完成的核心级关注点是系统要完成的业务功能业务功能;
n系统级关注点是完成核心级关注点所必须的系统级关注点是完成核心级关注点所必须的配套设施配套设施,这,这些配套设施通常被认为是整个系统的系统特性,或者是业些配套设施通常被认为是整个系统的系统特性,或者是业务功能的功能约束。
务功能的功能约束。
例如:
信用卡处理系统例如:
信用卡处理系统核心关注点是核心关注点是处理付款处理付款;
系统级关注点包括系统级关注点包括日志、事务、认证、安全和性日志、事务、认证、安全和性能能等等。
等等。
6n软件系统中,某个行为,例如操作日志的软件系统中,某个行为,例如操作日志的记录,存在于软件的各个部分中,这个行记录,存在于软件的各个部分中,这个行为可以看作是横向存在于软件之中,他所为可以看作是横向存在于软件之中,他所关注的是软件的各个部分的一些共有的行关注的是软件的各个部分的一些共有的行为。
为。
n在很多情况下,这种行为不属于业务逻辑在很多情况下,这种行为不属于业务逻辑的一部分。
这种操作并不是业务逻辑调用的一部分。
这种操作并不是业务逻辑调用的必须部分,但是,我们却往往不得在代的必须部分,但是,我们却往往不得在代码中显式进行调用,并承担由此带来的后码中显式进行调用,并承担由此带来的后果。
果。
7n在目前的技术框架下,通常在目前的技术框架下,通常系统级关注点在系统级关注点在逻辑上逻辑上相互之间相互之间彼此正交(相互独立),彼此正交(相互独立),同时在同时在实现上实现上趋向于趋向于和若干核心模和若干核心模块交织块交织。
信用卡管理系统的每个核心业务关注点都和安全、例如:
信用卡管理系统的每个核心业务关注点都和安全、日志等系统关注点相联系。
日志等系统关注点相联系。
8n核心级关注点核心级关注点(业务)多数情况下可以(业务)多数情况下可以被很好地分解,并被很好地分解,并通过编程语言模块化通过编程语言模块化实现(子模块或软构件)实现(子模块或软构件)。
n系统级关注点系统级关注点(横向关注点),使用当(横向关注点),使用当前的程序设计方法导致前的程序设计方法导致在许多构件中要在许多构件中要重复包含(扩散)这些代码重复包含(扩散)这些代码。
9横切示例(crosscutting)nAuthentication权限权限nCaching缓存缓存nContextpassing内容传递内容传递nErrorhandling错误处理错误处理nLazyloading懒加载懒加载nDebugging调试调试nLogging、tracing、profilingandmonitoring日志、跟踪、日志、跟踪、优化、校准优化、校准nPerformanceoptimization性能优化性能优化nPersistence持久化持久化nResourcepooling资源池资源池nSynchronization同步同步nTransactions事务事务10现有软件技术的不足目前的实现技术只提供了一维方法学实现系统的关注点,该单一维度一般是核心需求和关注点的模块化实现,其他类型的需求也被迫和该主导维度一致。
安安全全事事务务业业务务业务主导维业务主导维问题空间是问题空间是nn维的,而解空间是一维的。
这种失配必然导致需求和维的,而解空间是一维的。
这种失配必然导致需求和实现之间的失配。
实现之间的失配。
11源程序就会变成一些为不同关注目的而编制的源程序就会变成一些为不同关注目的而编制的指令的缠结混乱物。
指令的缠结混乱物。
缠结现象缠结现象是现有软件系统中许多不必要的是现有软件系统中许多不必要的复杂性的核心复杂性的核心。
它增加了功能构件之间的依赖性,它增加了功能构件之间的依赖性,分散了构件原来假定要做的事情,分散了构件原来假定要做的事情,提供了许多程序设计出错的机会,提供了许多程序设计出错的机会,使得一些功能构件难以复用,使得一些功能构件难以复用,源代码难以开发、理解和发展。
源代码难以开发、理解和发展。
12v某一应用的领域专家,不太可能对分布、认证、某一应用的领域专家,不太可能对分布、认证、访问控制、同步、加密、冗余等问题的复杂实访问控制、同步、加密、冗余等问题的复杂实现机制很熟悉,所以就不能保证他们在程序中现机制很熟悉,所以就不能保证他们在程序中进行正确的调用。
进行正确的调用。
v开发人员很难正确预见到未来对程序的新需求开发人员很难正确预见到未来对程序的新需求。
13方面(Aspect)n设计上讲,是横切系统的一些软件系统级关注点。
设计上讲,是横切系统的一些软件系统级关注点。
n实现上讲,它支持将横切系统的关注点封装在单独的模块单实现上讲,它支持将横切系统的关注点封装在单独的模块单位中,它是位中,它是AOP将横切关注点局部化和模块化的实现机制。
将横切关注点局部化和模块化的实现机制。
n常见的常见的“方面方面”:
异常和出错处理异常和出错处理同步和并发控制同步和并发控制内存访问模式内存访问模式日志、安全日志、安全事务、性能事务、性能14AOPAOP核心内容就是所谓的核心内容就是所谓的“横切关注点横切关注点”,即,即“方面方面”,AspectAspect是是AOPAOP提供的一种程序设计单元。
提供的一种程序设计单元。
而在而在OOP中中,这些一般关注点的实现单元叫作类这些一般关注点的实现单元叫作类AOPAOP的目标,是要将这些横切关注点与业务逻的目标,是要将这些横切关注点与业务逻辑代码相分离,从而得到更好的软件结构、性能以辑代码相分离,从而得到更好的软件结构、性能以及稳定性等方面的好处。
及稳定性等方面的好处。
AOPAOP被认为是后面向对象时代的一种新的重要被认为是后面向对象时代的一种新的重要的程序设计技术。
的程序设计技术。
15AOP的基本思想n通过分别描述系统的不同关注点及其关系,以一种松耦合的方式通过分别描述系统的不同关注点及其关系,以一种松耦合的方式实现单个关注点,然后依靠实现单个关注点,然后依靠AOP环境的支撑机制,将这些关注环境的支撑机制,将这些关注点组织或编排成最终的可运行程序。
点组织或编排成最终的可运行程序。
普通关注点可以使用传统的结构化方法和面向对象方法体统的机普通关注点可以使用传统的结构化方法和面向对象方法体统的机制。
制。
系统关注点使用系统关注点使用Aspect机制。
机制。
16AOP程序设计的一般步骤n一、一、对需求规约进行对需求规约进行Aspect分解。
分解。
n确定哪些功能是组件必须实现的,即提取出确定哪些功能是组件必须实现的,即提取出核心核心关注点。
关注点。
n哪些功能可以以哪些功能可以以aspect的形式动态加入到系统组的形式动态加入到系统组件中去,即提取出系统级的件中去,即提取出系统级的横切关注点横切关注点。
17AOP程序设计的一般步骤n二、二、对标识出的对标识出的Aspect分别通过程序机制实现。
分别通过程序机制实现。
构造系统的组件。
利用利用组件语言组件语言实现系统的组件。
对于实现系统的组件。
对于OOP语言,这些组件可以是语言,这些组件可以是类;
对于过程化程序设计语言,这些组件可以是各种函数和类;
对于过程化程序设计语言,这些组件可以是各种函数和API。
构造系统的构造系统的aspect。
利用一种或多种利用一种或多种aspect语言语言实现实现aspect。
aspect语言必须提供声明语言必须提供声明aspect的机制。
的机制。
aspect如何声明如何声明连接点如何定义连接点如何定义aspect代码如何定义代码如何定义aspect的参数化程度等的参数化程度等18n三、三、用用aspect编织器将所有的单元编排重组在一起,形成最终的可运行编织器将所有的单元编排重组在一起,形成最终的可运行系统。
系统。
为组件语言和为组件语言和aspect语言构造相应的语法树;
依据语言构造相应的语法树;
依据aspect中的连接点定中的连接点定义对语法树进行联结;
在连接的语法树上生成中间文件或目标代码。
义对语法树进行联结;
aspect语言必须提供将语言必须提供将aspect代码和基础代码组合编排(代码和基础代码组合编排(weaving)在一起的机制。
在一起的机制。
定义编排语言和规则。
解决解决aspect之间潜在的冲突。
之间潜在的冲突。
为组装和执行建立外部约束。
aspect语言必须提供生成可运行系统的实现机制。
语言必须提供生成可运行系统的实现机制。
系统的组合是在编译时静态组装还是运行时动态进行。
对程序单元分别进行编译的模块化编译机制。
对组装结果的验证机制等。
19AOP的本质n将横切关注点(如日志、权限验证、并发控制等非功能需将横切关注点(如日志、权限验证、并发控制等非功能需求)单独用求)单独用aspect实现,而业务功能用现有的软件技术实实现,而业务功能用现有的软件技术实现。
由现。
由AOP机制提供将这些分离的关注点编织为一个可执行机制提供将这些分离的关注点编织为一个可执行程序。
程序。
n提高代码的可理解性、可维护性、可复用性等。
提高代码的可理解性、可维护性、可复用性等。
横切关注点横切关注点20AOP系统的软件开发过程业务逻辑存储日志安全需求关注点标识编织器Aspect分解Aspect重组21AOP与OOP比较OOP是是AOP的技术基础,的技术基础,AOP是对是对OOP的继承和发的继承和发展。
展。
n可扩展性:
可扩展性:
指软件系统在需求更改时程序的易更改能力。
OOP主要通过提供继承和重载机制来提高软件的可主要通过提供继承和重载机制来提高软件的可扩展性。
扩展性。
AOP通过扩展通过扩展Aspect或增加或增加Aspect,系统相关的,系统相关的各个部分都随之产生变化。
各个部分都随之产生变化。
22n可重用性:
可重用性:
指某个应用系统中的元素被应用到其他应用系统的能指某个应用系统中的元素被应用到其他应用系统的能力。
力。
OOP以类机制作为一种抽象的数据类型,提供了比过以类机制作为一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 方面 程序设计