COM与C++类的比较:
1. 封装机制
COM的封装机制有点像J2ME中的GCF;而C++的封装机制则类似于J2ME的普通的类。
类有成员、有方法;可以通过类或者类的对象直接访问或者修改成员,也可以通过方法修改。这是一般的调用方法。再更上一层的封装就是接口,是对类的抽象;接口中是一组方法,是方法的集合。接口的一个典型应用就是GCF。通过对传入的字符串进行解析,使用Class.forName找到对应的类,这是GCF的实现。而事实上GCF的实现还可以做更进一步的扩展。比如解析传入的字符串后,到制定的网站下载对应的类。
如果说C++的封装机制体现了类与类的继承关系以及类的一些基本特性,那么COM的封装机制则体现了更抽象的封装,是模块到模块的。COM只提供接口,至于怎么实现,用什么语言实现、在哪里实现,不用去关心它。
2. 重用性
有经验的程序员会在一段时间的面向对象编程后,形成自己的类库。这就是面向对象的优点。java如此,c++也是如此。这种类的继承这种层次的重用,是源代码级的,是最低级的抽象。高一级的抽象就是COM、j2me中的GCF框架。使用的类可以不在该程序包中,甚至在网络上。使用者和库的提供者之间相互独立,只通过接口连接。库更新不会对使用者造成影响。从这个角度看,COM的重用性比C++类库的重用性高。