网站大量收购闲置独家精品文档,联系QQ:2885784924

AOP改进观察者模式--实现关注点的分离.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AOP改进观察者模式--实现关注点的分离.pdf

第25卷 计算机应用 V01.25 2005年12月 ComputerAppIicadons Dec.2005 文章编号:1001—9081(2005)12z一410—03 AOP改进观察者模式——实现关注点的分离 付登科,郝克刚,葛玮 (西北大学计算机科学系,陕西西安710069) (dkfu@sina.com) 摘要:分析了传统的面向对象方式实现观察者模式所产生的问题,从AoP的视角考虑问题,并 用A5pecⅡ实现了观察者模式。最终实现关注点的分离,使模式具有更好的模块化结构,具体表现在 更好的代码局部化,可重用性,组合的透明性和即插即用性(即可扩展性)。 关键词:设计模式;观察者模式;AOP;AspecU;横切关系;横切关注点 中图分类号:TP311.52文献标识码:A 于它的对象都得到通知并被自动更新。 0 引言 观察者模式的关键对象是主题(subject)和观察者 软件设计无非就是封装业务关注点,关注点又分为核心 (Obse丌er),一个主题可以有任意数目的观察者依赖于它。 关注点和横切关注点。AoP正是基于上述思想分离横切关 一旦主题发生某些事件(例如状态发生变化),所有的观察者 注点。即在软件开发初期只考虑实现核心关注点,将横切关 都将得到通知。随后观察者可以主动查询主题的状态,以保 注点利用AOP技术封装成方面编排到原有的系统中,在不影 持系统各部分状态的一致性。观察者模式有时也称为发布. 响原有系统的情况下对系统进行扩展。这样就达到了既缩短 开发周期又不对系统功能造成缺失的双重目的。 题在事件发生时广播这些消息。如果某个对象的事件需要告 传统的程序经常表现出一些不能自然地适合单个程序模 知其他对象,只不想让前者了解后者的太多信息,就可以使用 该模式。其典型结构如下所示: 块或者几个紧密相关的程序模块的行为,AspecⅡ的先驱将这 种行为称为横切,因为它跨越了给定编程模型中的典型职责 界限。横切关系是一种跨越多个类的关系,设计模式就是一 种典型的横切关系。”1 GOF设计模式是解决一般软件问题的一个灵活的解决方 案,每一个模式的构成都包括模式名称,且的或意图,适用性 赖关系,当一个对象的状态发生改变时,所有依赖 图2观察者模式示倒 收稿日期:2005一03—24;修订日期:2005—10一20 作者简介:付登科(1980一),男,湖北枣阳人,硕士研究生,主要研究方向:工作流技术、软件工程、软件技术;郝克剐,男,陕西西安人.教 授.博士生导师,主要研究方向:工作流技术、软件工程、软件新技术;葛玮.男,陕西西安人,副教授,主要研究方向:工作流技术、软件工程、分 布式计算. 万方数据 12月 付登科等:AOP改进观察者模式——实现关注点的分离 411 n嘶fyobsen吧r()操作。这些操作会对主题自身的业务逻辑造1.2.2舡pec玎概述 成干扰,并且这种实现方式把主题需要通知哪些观察者的逻 AspecU是xemxPARc开发的基于J盯a语言的扩展,它 辑硬编码到程序内部。如果用户需要改变要通知的观察者就 使用Java语言实现单个关注点,并通过对J啪扩展提供了编 必须修改源代码。此外添加,删除及通知观察者的操作散布 排规则。它定义了支持AOP中概念的以下语言结构: 在主题代码的各处,给维护带来巨大的困难。 如果我们用AOP的视角来考察问题:添加、删除及通知 序特定执行点。例如对类的某个方法的调用。 观察者并不是哪一个主题所特有的事,而是所有subj∞t

文档评论(0)

ddwg + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档