COM是一个更好的C++
1.如何把一个类做成可重用的二进制组件:
a. 以动态链接库(dll)的形式来发布这个类,以便从物理上把这个类的包装与客户的包装脱离开来
b. 使用接口和实现的概念,把数据类型的实现细节封装到二进制防火墙后面,使得对象的布局结构随时间二进化,但无需要求客户重新编译
c. 在采用抽象基类作为定义接口的方法之后,这道防火墙便以vptr和vtbl的形式出现了。
d. 使用Loadlibrary和GetProcAddress,在运行时动态地选择同一接口的不同实现(呈现了运行时的多态)
e. 使用与RTTI类似的结构,在运行时动态的询问对象,以确定对象实际上是否实现了指定的接口
这种结构使我们能够扩充接口的现有版本,并且也可以从单个对象暴露多个不相关的接口。
简而言之,我们刚刚设计了组件对象模型(COM,Component Object Model)