题库系统集成项目管理工程师

系统集成项目管理工程师 · 第三版 · 第7章 软硬件系统集成

不同编程语言开发的COM组件,为什么可以相互使用?

17 道章节练习题
单选题7.3 软件集成3 / 17

在满足运行平台和组件规范的前提下,一个程序要使用另一种编程语言实现的COM组件。它不读取该组件源代码,而是通过组件公开的接口调用功能。支持这种重用的关键是()。

选择答案
未作答
答案与解析

正确答案 A

COM通过二进制层的标准接口支持互操作,组件实现语言与调用方语言可以不同,但必须满足相应规范。相同编译器或DLL、EXE扩展名都不能替代接口符合性,选A。

跨语言并不是让调用方看懂另一种语言的源代码,而是让双方在约定的接口上交互。你可以把组件理解为已经做好的功能单元:调用方知道该接口怎样使用,不必知道里面哪一行代码如何写。教材强调COM对象是二进制代码对象,并由标准接口提供互操作能力,这才是本题的依据。容易漏掉的是“符合规范”这个前提:不是所有DLL或EXE都是可用的COM组件,也不是任何语言写完就能任意组合。语言无关性更不等于平台无关性;题干已经限定运行平台和组件规范满足要求,不可把这个结论扩大到所有系统都能免适配运行。

选项分析

A
符合COM规范的二进制互操作接口为跨语言使用提供共同约定,不要求调用方读取组件源代码。
B
该做法变成源代码转换,不是题干所述直接通过已实现组件接口进行重用的机制。
C
教材强调语言无关性,不能把相同编译器当成必要条件;关键仍是生成和使用符合规范的接口。
D
文件形式不能证明接口符合COM规范,仅凭扩展名无法保证组件身份或与调用方的兼容性。

容易混淆的地方

将语言无关记成没有任何兼容性条件,或误以为相同文件扩展名便能保证组件互操作。

再巩固一步

  • COM看二进制接口的共同约定;分别检查语言、接口和平台三个层面,不要把语言无关扩大成平台无关。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 7.3.2 · 纸书第273页

练习小结

题目纠错

未发送。正式接收渠道尚未接通。

查看纠错信息