首页 > 系统编程 > COM 学习笔记 (1) : COM 简明概念
2019
07-15

COM 学习笔记 (1) : COM 简明概念

COM 的简明概念

面向组件编程的优点

  • 应用的可定制性

用户希望能够定制他们的应用,而程序员可以为用户建立应用定制方案 —— 通过组件架构本身的可定制性(用户能使用需要的组件来将某个组件替换掉)

  • 组件库

组件架构拥有快速应用开发的优点,程序员可以某个组件库中取出所需的组件并将其快速地组装到一起,构造出所需的应用(如同搭积木)

  • 分布式组件

对于 C/S(客户机 / 服务器)模式的应用而言,应用已经被划分成位于远程的各个功能部分,因为任一组件均可做替换,所以可以将某个组件替换为专门负责同某个远程组件通信的组件

COM 的特点

COM 可以满足前面讨论过的所有组件架构的要求。它使用 DLL 来提供可在运行时被替换掉的组件。COM 借助于如下一些手段保证这些组件可以充分利用动态链接所带来的各种好处

  • 提供了一个所有组件都应遵守的标准
  • 允许使用组件的多个不同的版本,而且这一点对于客户机而言几乎是透明的
  • 使得可以按相同的方式来处理类似的组件
  • 定义了一个与语言无关的架构
  • 支持对远程组件的透明链接

COM 接口(Interface)

在 COM 中,接口是一个包含一个函数指针数组的结构,数组的每一个元素包含的是一个由组件实现的函数的地址

对 COM 而言,接口就是这个内存结构,其他的都不是 COM 需要关心的细节

在 C++ 中,我们使用抽象基类(abstract base class)来实现 COM 接口

因为一个 COM 组件可以支持任意数目的接口,因为对于此类组件,应使用抽象基类的多重继承来实现之

COM 接口的关键要素

  • COM 接口在 C++ 中是用纯抽象基类实现的
  • 一个 COM 组件可以支持多个接口
  • 一个 C++ 类可以使用多继承来实现多个接口的组件

参考资料

[1] (美)Dale Rogerson , 李忠 , 王晓波 . COM 技术内幕 – 微软组件对象模型 [M] . 北京 : 清华大学出版社 , 1991.


打赏 赞(1)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

最后编辑:
作者:Yenyu
Yenyu
编程爱好者

留下一个回复

你的email不会被公开。