|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主要缺点就是:速度比较慢,没有C和C++快
COM(之前称为OLE)代表微软公司的“组件对象模子”(ComponentObjectModel),它是一切ActiveX手艺(包含ActiveX控件、Automation和ActiveX文档)的基本。但COM还包括了更多的工具。它是一种特别的标准,依照它开辟出来的组件对象可经由过程操纵体系的专门特征完成“互相操纵”。在实践使用中,为Win32体系开辟的一切新软件都与COM有着必定的干系——操纵体系经由过程COM对象展现出本人的一些特征。由其他厂商开辟的组件也能够创建在COM的基本上,我们能创立和注册本人的COM组件。经由过程如许或那样的情势,假如我们想编写Win32代码,那末必需和COM打交道。在这里,我们将仅仅重述COM编程的基础观点,并且假定读者已把握了COM服务器(能为COM客户供应服务的任何COM对象)和COM客户(能从COM服务器那边请求服务的一个COM对象)的观点。本节将尽量地使叙说变得复杂。工具实践的功效要壮大很多,并且我们可经由过程更初级的路子来利用它们。但这也请求对COM有着更深入的熟悉,那已超越了本附录的局限。假如您对这个功效壮大、但与分歧平台有关的特征感乐趣,应当研讨COM和微软公司的文档材料,细心浏览有关Java/COM集成的那部份内容。假如想取得更多的材料,向您保举DaleRogerson编著的《InsideCOM》,该书由MicrosoftPress于1997年出书。
因为COM是一切新型Win32使用程序的布局中心,以是经由过程Java代码利用(或展现)COM服务的才能就显得尤其主要。Java/COM集成无疑是MicrosoftJava编译器和假造机最风趣的特征。Java和COM在它们的模子上是云云类似,以是这个集成在观点上是相称直不雅的,并且在手艺上也能轻松完成无缝分离——为会见COM,几近不必要编写任何特别的代码。年夜多半手艺细节都是由编译器和/或假造机把持的。终极的了局即是Java程序员可象看待原始Java对象那样看待COM对象。并且COM客户可象利用其他COM服务器那样利用由Java完成的COM服务器。在这里提示人人,只管我利用的是通用术语“COM”,但依据扩大,完整可用Java完成一个ActiveXAutomation服务器,亦可在Java程序中利用一个ActiveX控件。
Java和COM最有目共睹的类似的地方就是COM接口与Java的“interface”关头字的干系。这是靠近完善的一种符合,由于:
■COM对象展现出了接口(也只要接口)
■COM接口自己其实不具有实行计划;要由展现出接口的谁人COM对象卖力它的实行
■COM接口是对语义上相干的一组函数的申明;不会展现出任何数据
■COM类将COM接口组合到了一同。Java类可完成恣意数目的Java接口。
■COM有一个援用对象模子;程序员永久不成能“具有”一个对象,只能取得对对象一个或多个接口的援用。Java也有一个援用对象模子——对一个对象的援用可“外型”成对它的某个接口的援用。
■COM对象在内存里的“保存工夫”取决于利用对象的客户数目;若这个数目酿成零,对象就会将本人从内存中删往。在Java中,一个对象的保存工夫也由客户的数目决意。若不再有对谁人对象的援用,对象就会期待渣滓搜集器的处置。
Java与COM之间这类严密的对应干系不但使Java程序员能够便利地会见COM特征,也使Java成为编写COM代码的一种无效言语。COM是与言语有关的,但COM开辟现实上接纳的言语是C++和VisualBasic。同Java比拟,C++在举行COM开辟时显得加倍壮大,并可天生更无效的代码,只是它很难利用。VisualBasic比Java复杂很多,但它间隔基本操纵体系太远了,并且它的对象模子并未完成与COM很好的对应(映照)干系。Java是二者之间一种很好的折中计划。
接上去,让我们对COM开辟的一些关头成绩举行会商。编写Java/COM客户和服务器时,这些成绩是起首必要弄分明的。
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的), |
|