中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 软件工程 > 综合文章
构件与对象
作者:jiayu007 时间:2001-12-30 11:52 出处:互联网 责编:chinaitpower
              摘要:构件与对象
 

构件与对象

作者: 贾育

email: jia_yu@263.net

 

[版权所有 任何形式的拷贝和引用必须得到作者的许可]

 

关于构件与对象之间,或基于构件的软件工程CBSE与面向对象技术OT之间的区别讨论存在已久,1998年著名构件专家Brown在《The Current State of CBSE》一文中总结道:“OT is neither necessary nor sufficient ( to CBSE)”。CBSE(即CBD)将革新系统设计、项目管理和组织机构形态,改善和超越产业界所积累的OT经验的基础。关于OT的不足,Brown指出构件的一个主要特征是它的替代性,这一特征必须在语境中明确指出,具体地说,就是在规约中必须存在描述“使用(use)”子句的能力,OT在这个方面存在缺陷。关于OTCBSE的必要性,Brown指出实践中非OT完全可以创建构件,有些人特意追求不用OT来实现构件。

由此可见internal DX认为构件是面向对象的一种应用是不正确的,应该构件技术是对象技术的发展,构件具有更强的独立性、封闭性和可复用性。注意,VCLMFC中的component一词并非专有名词,而是指“部件”、“组成部分”的普通词汇。

 

下面陈述若干我对“构件和“对象”的认识,有些可能是片面的、不正确的,请各位读者指正:

1.       构件和对象都是对客观世界实体的一种抽象描述,他们的共同特点是信息隐藏和一定的独立性。但是构件要求是自描述,独立性更强,而对象达不到这一要求,也较为“白盒”了一些。

2.       构件和对象的本质区别:构件提供的是服务,对象提供的是功能;构件接口描述了问题域(problem domain),而对象接口描述了方案域(solution domain)。

3.       对象是类的实例,对象是动态的;有人说构件是静态的,应该和类相对应;事实上并不尽然,可以这样看,在特定领域体系结构(DSSA)中定义的构件是静态的,而集成到应用系统中的构件是动态的,目前尚未见到有人对它们的区别。

4.       存取构件和对象中的信息都必须通过它们的接口,构件的结构有必要充分描述它的语义,对象做不到这一点,所以对象需要另加接口才可以成为构件,所以有人认为构件=对象+接口,我认为这只是构件的充分条件。

5.       分布式对象CORBA/DCOM/EJB的实现体是不是构件,或者是不是只有它们才是构件,我这样认为,构件的独立性、封闭性和异构性要求构件之间存在很强的通信能力,所以第三方协调是必要的,恰好这些基础设施(infrastructure)起了这样的作用,其实他们并非专门为构件而设计,它们的出发点是以“分布”为目的。人们在研究CBD集成/组装时由于没有其它的通信技术,所以它们自然地成为构件工业标准,我想强调构件复用可从来没用指明一定要分布式(放在服务器上),它看重的还是集成/组装的技术。不过这些标准很识时务,都在向构件方向发展,比如CORBA CCM标准。这里我想说一句题外话,就是这几个标准为什么有人说是中间件的标准,我想还是因为他们的异构能力和通信能力使他们成为开发以(消息)转换、交互为目的的一类软件的有力武器,你可千万别把中间件当成了构件(现在国内很多公司都在这么说),或者把中间件拓宽其范围成为构架,这也是不妥的。

6.       构件的接口是一种服务提供者对消费者的承诺:即契约(contract);用契约确保一组构件之间的行为组合。对象就没有这个说法。由于服务存在的持久性,所以服务都是永久性存储对象。

7.       构件的粒度一般较粗,它可能包括一个或多个对象(或类),它的接口一般也比对象复杂。

8.       ……

 

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有