COM(Component Object Mode1,组件对象模型)
目录 |
COM是一种规范,一种关于现代软件开发的方法,也是微软对基本对象规范的名字,用于构件集成的二进制标准。通常所说的COM构件,应称为基于COM的构件,是遵循COM规范编写的、以Win32动态链接库(ActiveXDLL)或可执行文件(.EXE)形式发布的可执行的二进制代码,能够满足对构件架构的所有需求,极其方便地建立可伸缩的信息系统。利用COM技术,在不同层次上,构件均可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现。
COM是面向对象与客户/服务务器的结合。面向对象通过封装、继承和多态的特性为软件复用提供了良好的支持,但是由于不存在链接二进制对象的标准,面向对象的复用受限于所使用的开发语言,因此其复用脱离不了代码级复用的本质,复用颗粒较低。一个显而易见的事实是,C+十编写的类库不可能在VB或Delphi编写的程序中使用,而且一旦某个类被修改,整个程序都不得不重新编译。COM技术则汲取了面向对象中封装、继承和多态的优点,基于客户/服务器模型实现了二进制复用。
COM构件的工作方式类似于服务器,可以接收处理客户程序的请求,并产生回复信息。它封装了构件内部的实现细节,对外只提供使用定义接口语言(IDL)定义的二进制接口。接口展示了构件的可用功能,是构件与其客户之间互操作的严格约定,客户程序只能通过接口才能调用COM构件。因此CoM构件与编程语言无关,可以使用不同的编程语言来编写COM构件和调用构件的客观程序。同时COM具有支持多个接口的能力,如果需要升级已经发布的COM构件,新增功能时可以通过添加新接口的形式来实现,不用修改原有的接口。这样已有的客户程序不会受影响,可以利用新增的功能实现新的客户程序。