频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

为AOP注入团队活力(5)

作者: cleverpig 出处:MATRIX  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-12-06 13:36
关 键 词:Java  Eclipse  Aop  Aspect
阅读提示:在EclipseCon2007的看到了一篇理论性十足的OT/J的提议搞,引起了我强烈的兴趣,因为在文中仿佛听到了AOP车轮加速的声音,看到了AOP列车正在徐徐地奔向未来之路。为牵引机车提供强劲动力是其内部刚刚安装上的 ObjectTeams引擎组,它为AOP注入了空前强大的团队活力。它使我感觉自己发现了一个全新世界,找到了新的视角...

为了到达初始状态的解耦,Aspect进行协作,并没有削弱它们被部署到具体环境中的能力,这样一种基于模式的设计——我们称之为“控制roles”(controller roles)被引入。控制role是绑定到抽象控制器类(controller class)上的role类,这个控制器类声明了反映team基本特性的方法。

image

图6:控制role行为示意图

控制role包含绑定到控制器类方法的方法,这些方法托管了到相应team方法的调用。注意这里没有直接在多个实体之间的连接,从而去除了在程序启动时对交换引用(reference)的需要。同时这也意味着在Control Marker的子类实例中所有被继承方法都将被激活的team实例所拦截。这对于多个team来讲可要小心。这样,使用具体的Control Marker子类和Aspect进行相互联接,而将team的子类留给在具体的base应用中用来部署Aspect的做法成为了可能。

控制role模式是安全Aspect的可行性设计和实现的核心。当这些Aspect不是被明确地初始耦合在一起时,此时设计被允许在重用模块中实现Aspect之间的通讯。这样的系统是被限制的而不能看作是框架,但它展现了Aspect在问题域上的相互协作。

七、ObjectTeams的Java实现

image

在ObjectTeams的种子播撒到AOP的热土上,希望明年有好收成

ObjectTeams/Java作为一种java语言的扩展,用来解决在OO编程领域的两大基本问题:

1.OO编程方式不利于良性扩展。如果把类仅仅看作是把大型、复杂系统进行结构化的概念,那么它和实现、维护一个复杂的系统结构完全是两码事。像java package这样的命名空间对后者帮助并不大,因为这些结构没有任何的运行时语法。组件技术(包括OSGI bundle概念)“医治”了这个问题的一部分。而问题的剩余部分则需要两种技术——编程语言和组件模式,这正是ObjectTeams/Java的目标:实现一种能够满足以上要求的编程语言。

2.OO编程不能将横切关系模块化。AOP将发散、混乱的现象作为研究方向,它解决了OO编程方法在将系统结构化为多维上的“无能”。这在ObjectTeams/Java中被称为多视图的直接支持。

ObjectTeams/Java引入了两种新的类(模块)和用于处理上述两问题的三种新的关系。

team和role类:

team作为角色(role)类的聚合体成为容器(container),它是建立下面关系的基石:

◆包容关系(containment):在team和它的角色之间的包容关系与静态类和它的运行时实例之间的关系相同。包容被用于对由角色对象作保证的、并且不越出它们涵盖的team实例的范围进行强力封装。包容是扩展和内嵌的基础。

◆继承关系:为了支持复杂team类的扩展,继承关系被递归地应用在它所包含的角色上。通过应用现代类型理论(虚对象和家族体系),team继承关系将框架技术推进了一大步,它使对抽象应用的实例化更加容易。

◆适配关系:这种最强大的关系使team能适配一组现存类或者另一个team。适配关系把基于角色的语言和加入点(join point)拦截器组合在一起,这就像AOP所做的一样。这样就可顺畅地解决在维护team模块扩展时的横切问题。

下面短小的tutorial将展示OT/J语言兼顾交互式教学模式和小型在线演示。它使用并演示了Object Teams开发工具 ,这个开发工具是基于Eclipse JDT的OT/J扩展。OT/J语言和其工具被成功用在了一些个案研究中(就像使用OT/J开发工具本身一样)。OT/J初学者将学习到许多基本的理论和使用team、角色和它们的关系来建立真实世界应用的模式。

对这种交互角色的汇聚问题早在多年前就引起许多研究人员和开发者关注。比如,T.Reenskaug在1996年发表的OORAM(Object-oriented role analysis and modeling)方法,并已被面向对象社区所接受。不幸的是,此时没能出现一种可直接将角色模式编写为程序的合适的编程语言。OT/J填补这一空白, 它允许开发者使用非常直观的角色和基于分析下层实现来获得精确的聚合。

八、作者简介

image

Stephan Herrmann先生

从1997年,Stephan Herrmann先生开始在大学进行涉及OO软件开发的教学。并于2002年完成了他的PhD:基于多视图的原模式软件工程环境。目前,他的研究工作关注在2001年他开始开发的OT/J语言。他是TOPPrax (5家机构联合研究项目)的领导者,此项目致力于实现如OT/J这样的“现代面向Aspect语言”的实际应用。

九、相关资源

Modular programming beyond classes with ObjectTeams/Java and the OTDT

下载支持Eclipse的OT/J开发工具(OTDT)

OT/J 0.9版语言定义

OT/J官方网站

(责任编辑 火凤凰 sunsj@51cto.com  TEL:(010)68476636-8007)



共5页: 上一页 [1] [2] [3] [4] 5
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看52473次)
·UML类图详解 (查看46951次)
·Java编程开发手册 (查看25172次)
·UML统一建模语言 (查看24155次)
·C#技术开发指南 (查看22515次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (304个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (217个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (569个好)
·.NET开发手册 (251个好)
·PB开发教程 (209个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有