首先了解以下几个概念:
组件就是对象(或者说是类),它与类的区别就在于类是以源码形式存在的;而组件是以二进制可执行码存在的。
组件模型:定义组件的制作方法,运行方式,以及相互作用机制。
COM是一个基于面向对象的组件模型,不是一种面向对象语言,它也不指定一个应用程序如何构造,它是一种标准,(除了指定二进制组件标准,COM还定义一些基本的接口以提供一些所有基于COM组件的技术所公有的函数。此外,COM还提供一些所有组件所需要的API函数。)它指明一种组件模型和使组件之间能够相互操作的编程需求。COM/DCOM组件可以运行在单一进程、不同进程、甚至是远端机器。它的结果是一个组件。
COM(Component Object Model)是开发面向对象组件的一种规范,是微软用来开发组件的一种规范。是一种平台独立的、分布式、面向对象的系统,用于创建可互操作的二进制软件组件。COM不是一种面向对象语言,而是一种标准。
COM/DCOM之所以被认为是一种二进制标准,是因为它是一种在应用程序被编译成二进制机器码之后才起作用的标准。
COM定义了COM组件的本质特征。一个软件组件由一组数据以及管理这些数据的函数构成。一个COM/DCOM组件是这样的一种软件组件,它专门通过一组或多组相关的函数存取组件数据。这些函数集合称为接口,而接口的函数称为方法。对COM/DCOM来说,它需要的唯一的调用接口方法的途径就是指向接口的指针。COM组件通过接口指针调用接口的方法。
编译好的COM/DCOM组件是不能修改的,要增加新的功能只能由开发商对组件源码进行修改、更新,然后重新编译生成新的COM/DCOM组件。
一般程序设计中的类是通过虚方法来实现多态的,而COM对象是通过接口来实现多态的。