当前位置:天才代写 > tutorial > JAVA 教程 > Java/COM集成

Java/COM集成

2017-11-13 08:00 星期一 所属: JAVA 教程 浏览:447

COM(以前称为OLE)代表微软公司的“组件工具模子”(Component Object Model),它是所有ActiveX技能(包罗ActiveX控件、Automation以及ActiveX文档)的基本。但COM还包括了更多的对象。它是一种非凡的类型,凭据它开拓出来的组件工具可通过操纵系统的专门特性实现“彼此操纵”。在实际应用中,为Win32系统开拓的所有新软件都与COM有着必然的干系——操纵系统通过COM工具展现出本身的一些特性。由其他厂商开拓的组件也可以成立在COM的基本上,我们能建设和注册本身的COM组件。通过这样或那样的形式,假如我们想编写Win32代码,那么必需和COM打交道。在这里,我们将仅仅重述COM编程的根基观念,并且假定读者已把握了COM处事器(能为COM客户提供处事的任何COM工具)以及COM客户(能从COM处事器哪里申请处事的一个COM工具)的观念。本节将尽大概地使论述变得简朴。东西实际的成果要强大得多,并且我们可通过更高级的途径来利用它们。但这也要求对COM有着更深刻的认识,那已经超出了本附录的范畴。假如您对这个成果强大、但与差异平台有关的特性感乐趣,应该研究COM和微软公司的文档资料,仔细阅读有关Java/COM集成的那部门内容。假如想得到更多的资料,向您推荐Dale Rogerson编著的《Inside COM》,该书由Microsoft Press于1997年出书。
由于COM是所有新型Win32应用措施的布局焦点,所以通过Java代码利用(或展现)COM处事的本领就显得尤为重要。Java/COM集成无疑是Microsoft Java编译器以及虚拟机最有趣的特性。Java和COM在它们的模子上是如此相似,所以这个集成在观念上是相当直观的,并且在技能上也能轻松实现无缝团结——为会见COM,险些不需要编写任何非凡的代码。大大都技能细节都是由编译器和/或虚拟机节制的。最终的功效即是Java措施员可象看待原始Java工具那样看待COM工具。并且COM客户可象利用其他COM处事器那样利用由Java实现的COM处事器。在这里提醒各人,尽量我利用的是通用术语“COM”,但按照扩展,完全可用Java实现一个ActiveX Automation处事器,亦可在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++和Visual Basic。同Java对比,C++在举办COM开拓时显得越发强大,并可生成更有效的代码,只是它很难利用。Visual Basic比Java简朴得多,但它间隔基本操纵系统太远了,并且它的工具模子并未实现与COM很好的对应(映射)干系。Java是两者之间一种很好的折衷方案。
接下来,让我们对COM开拓的一些要害问题举办接头。编写Java/COM客户和处事器时,这些问题是首先需要弄清楚的。

 

    关键字:

天才代写-代写联系方式