面向方面的程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向方面的程序设计

面向方面的程序设计 Aspect oriented programming(AOP) Xerox(施乐)公司PARC研究中心在1997年的欧洲面向对象编程大会(ECOOP97)上首次提出Aspect-oriented programming(AOP)。 自2002年起,每年分别在欧洲和美国轮流召开专门的面向方面软件开发(AOSD)国际会议。与会者包括美国、加拿大、荷兰、英国、法国、丹麦、日本、以色列等。我国一些学校也对AOP给以关注并开展了一些研究工作。 从AOP概念提出经过了近十年的时间,这种技术现在已经开始被工业界采用。 AOP产生的背景 计算机软件设计的一个重要原则,就是要清晰分离各种关注点(separation of concerns),然后分而治之,各个击破,最后形成统一的解决方案。 关注点:是指一个特定的目标、概念或者兴趣域。 从技术的角度,软件系统分别包括核心级和系统级的关注点。 核心级关注点是系统要完成的业务功能; 系统级关注点是完成核心级关注点所必须的配套设施,这些配套设施通常被认为是整个系统的系统特性,或者是业务功能的功能约束。 例如:信用卡处理系统 核心关注点是处理付款; 系统级关注点包括日志、事务、认证、安全和性能等等。 软件系统中,某个行为,例如操作日志的记录,存在于软件的各个部分中,这个行为可以看作是横向存在于软件之中,他所关注的是软件的各个部分的一些共有的行为。 在很多情况下,这种行为不属于业务逻辑的一部分。这种操作并不是业务逻辑调用的必须部分,但是,我们却往往不得在代码中显式进行调用,并承担由此带来的后果。 在目前的技术框架下,通常系统级关注点在逻辑上相互之间彼此正交(相互独立),同时在实现上趋向于和若干核心模块交织。 例如:信用卡管理系统的每个核心业务关注点都和安全、日志等系统关注点相联系。 核心级关注点(业务)多数情况下可以被很好地分解,并通过编程语言模块化实现(子模块或软构件)。 系统级关注点(横向关注点),使用当前的程序设计方法导致在许多构件中要重复包含(扩散)这些代码。 横切示例(crosscutting) Authentication 权限 Caching 缓存 Context passing 内容传递 Error handling 错误处理 Lazy loading 懒加载 Debugging 调试 Logging、tracing、profiling and monitoring 日志、跟踪、优化、校准 Performance optimization 性能优化 Persistence 持久化 Resource pooling 资源池 Synchronization 同步 Transactions 事务 现有软件技术的不足 目前的实现技术只提供了一维方法学实现系统的关注点,该单一维度一般是核心需求和关注点的模块化实现,其他类型的需求也被迫和该主导维度一致。 某一应用的领域专家,不太可能对分布、认证、访问控制、同步、加密、冗余等问题的复杂实现机制很熟悉,所以就不能保证他们在程序中进行正确的调用。 开发人员很难正确预见到未来对程序的新需求。 方面(Aspect) 设计上讲,是横切系统的一些软件系统级关注点。 实现上讲,它支持将横切系统的关注点封装在单独的模块单位中,它是AOP将横切关注点局部化和模块化的实现机制。 常见的“方面”: 异常和出错处理 同步和并发控制 内存访问模式 日志、安全 事务、性能 AOP的基本思想 通过分别描述系统的不同关注点及其关系,以一种松耦合的方式实现单个关注点,然后依靠AOP环境的支撑机制,将这些关注点组织或编排成最终的可运行程序。 ? 普通关注点可以使用传统的结构化方法和面向对象方法体统的机制。 ? 系统关注点使用Aspect机制。 AOP程序设计的一般步骤 一、对需求规约进行Aspect分解。 确定哪些功能是组件必须实现的,即提取出核心关注点。 哪些功能可以以aspect的形式动态加入到系统组件中去,即提取出系统级的横切关注点。 AOP程序设计的一般步骤 二、对标识出的Aspect分别通过程序机制实现。 ? 构造系统的组件。 利用组件语言实现系统的组件。对于OOP语言,这些组件可以是类;对于过程化程序设计语言,这些组件可以是各种函数和API。 ? 构造系统的aspect。 ?利用一种或多种aspect语言实现aspect。 ? aspect语言必须提供声明aspect的机制。 三、用aspect编织器将所有的单元编排重组在一起,形成最终的可运行系统。 ? 为组件语言和aspect语言构造相应

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档