com(component object model)组件对象模型。

    com是Microsoft的一项技术,可以实现代码的二进制重用,可以跨进程、机器或者网络,目前只支持Microsoft的系统和Apple Mac操作系统。COM的应用非常广泛,Microsoft的系统底层到处是com的身影,比如DirectX。二进制重用体现在,我们更新一个新的com组件是不需要将整个程序重新编译,只需要更新com组件即可。这样可以保证老的逻辑是不会的,不会因为更新引发新的问题。com组件的实现不受语言限制,遵守com规范的语言都可以写com组件。

   com组件的存在形式可以多样,可以是in process如dll文件的形式存在,可以是out process以exe的形式存在。一个com组件可以包含一个或多个com对象。

   com对像是com功能实现的基础,com对象的功能将以接口的形式提供的用户使用,这是唯一的方法,用户无法看到com的属性。com对象的概念与面向对象的对象概念比较相近,但面对对象是语言层面的,一旦上层类变化,下层就需要变化或者重新编译整个程序,而且面向对象的封装是代码层面的,用户依然可以看到类的属性及所有方法。com对象使用GUID来标识唯一性。用户对com对象的调用时透明的,不需要知道com对在何处。