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

对象之间连接器的设计与实现.pdf

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

对象之间连接器的设计与实现木 肖颖蒋建民朱恒亮 福建师范大学计算机科学系,福建福州350007 摘要:面向对象的程序设计语言为对象之间传递消息提供了各种手段,但对象问的消息传递都是 通过类之间的静态耦合实现,无法实现对象间的动态耦合。文中利用组件装配的思想来建立一种对象 外部的连接器,并通过一个简单的例子实现。这种装配式的对象外部的连接器与传统的面向对象编程 方法不同之处在于,它通过动态耦合的方法来实现降低对象间的耦合度,从而增强了程序的可读性和 可维护性。 关键词:对象消息传递连接器耦合 l引 言 在现有的而向对象语言中,对象之间的消息传递是先在所属类之间构筑消息传递通道,接着通过实例 来实现的。比如,为了在对象之间传递消息,面向对象的程序设计语占提供了四种机制:引用令局对象、 通过参数传递、引用局部变量和通过类的成员变量。在这网种机制里,对象问的消息传递都是通过静态耦 合实现的,所以程序员在定义类时,不仅要仔细考虑类自身的属性和方法,也要慎雨考虑被该类所引用的 其他类的属性和方法。因此,上述四种消息传递的方法虽然增强了对象操作的灵活性,但是州时也降低了 程序的可读性及可维护性。 为了解决这个问题,本文借用了基于构件的软件工程中的组件装配的思想,即组件中的消息传递通过 接口或者连接器实现,以提高各个组件的独立性。类似地,本文将单个对象看作是独直的“组件”,设计 一种独立于对象之外并用于对象间消息传递的装配式的“外部连接器”。通过该外部连接器的使用,程序 员在定义类时就只需定义该类本身的属性和方法,对象问的消息传递则由外部连接器实现。也就是说,使 用装配式的外部连接器不仅统一了原本消息传递的四种机制,使得对象I、HJ消息传递通过动态耦合实现,并 且当程序员定义类时仅需集中考虑类自身的属性和方法,而无需对“被引用”的其他类的属件和方法进行 考虑。这样不仅可以增强对象的独立性,提高程序员编写程序的效率,同时也增强了程序的可读性。 本文的第二部分分为以下几部分:首先介绍C2构件和组件外部连接器的思想;接着利用该思想在彼此 传递消息的两个对象间建立连接器,并运用JAVA的反射机制给出其JAVA代码;然后阐述使用该装配式的 连接器对传统面向对象编程的影响;最后给出一个简单的登陆实例加以说明。 2建立对象间的连接器 2.1C2构件思想 C2【l,21是一种基于分层结构、消息驱动的软件构架风格,其基本元素是构件和连接器。其中,连接器以 +基金资助:福建人才基金项目资助(2006F3043). 程与形式化验证;朱恒亮(198l-),男,硕士研究生,主要研究方向:软件工程. 独立实体存在。由连接器将各个构件连接起来并充当它们交互的中间件,从而将构件的接口需求与功能需 求相分离。c2的最大特点就是构件之问不存在直接的通信手段,构架中各元素构件、连接器之间的通信只 有通过连接器传递消息来实现。这些特点减少了构件之间的相互依赖,对系统演化及动态演化提供了很大 程度的支持。本文的对象间的连接器正是基于C2风格的思想提出的。 2.2连接器的设计 传统的面向对象的编程语言中,对象间的消息传递提高了对象问的耦合度。c2是最基本的连接器。文 献pJ提出一种建立在组件之问的外部连接器的思想,即外部连接器囊括了两个互相传递消息的组件中的所有 的控制流和数据流,使得组件之间只能通过连接器传递消息,其目的是实现相连组件耦合的最小化以及操 作中控制独立性的最大化。这种组件之问外部连接器的思想更接近于本文提出的对象之间连接器的思想。 本文利用文献13J中提到的外部连接器的思想来建立对象之间的装配式的连接器,即连接器控制对象问所 有的消息传递。如图l所示,对象objl与对象obj2只能通过连接器connector=i挂行消息传递。因此对象本身的 操作只需包括对自身属性的操作,若有涉及到对其他对象的操作则由连接器完成,从而独立了彼此间存在 消息传递的对象,实现了对这两个对象的封装,尽可能地降低了对象间的耦合度。直接消息传递将对象定 义中的对象自身函数定义与调用其他对象的定义混为一体,而本文则正是使用连接器将这两个定义区分开。 图l连接器 2.3连接器的实现 在连接器的设计中要动态调用类的属性及方法,而JaVa反

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档