什么是COM
COM,Component Object Mode即组件对象模型。之所以称之为“模型”,是表明COM是一种编程规范(非具体代码),通过这种规范我们能够编写出语言无关的,可扩展的,内部变化对用户完全透明的,支持分布式的(对用户而言,远程与本地的COM组件使用应该是无差别的)代码。
COM组件
  • 遵循COM标准而编写出来的产物,叫做COM组件。它是COM标准的实现体。
  • 遵循COM标准,
  一个COM组件可以看做一个接口集合(这里的接口不是一般意义上的函数,而是类似于类的东西)
  • 客户与COM打交道,只能够通过接口(即COM是一种面向接口编程,这最大程度上隔离了用户与具体实现,实现了可拓展性与对用户而言变化的稳定性),可以说,接口定义了COM。
  • 每个接口中有包含了若干函数,客户通过先获取接口,再调用函数来使用COM组件。
  • COM组件的构成可理解为 一个COM组件 包含 若干接口, 每个接口包含若干函数。
 对COM组件的要求
1、动态链接
COM的最终目标在于使用户在应用的运行过程中,可以动态的替换组件,这要求组件能够动态链接到程序中(如进程内组件,即有dll的形式实现)
2、封装性
COM的实现细节应封装,从而保证接口的稳定性,实现组件在应用中的动态替换。
为实现封装性,对组件有以下限制
(1)组件隐藏其使用的编程语言。及任何语言都应该能够使用COM。
(2)组件必须以二进制形式发布。为了隐藏COM的编程语言,它们必须是编译,链接好的,马上能够投入使用。
(3)组件的向下兼容性。即新版本的组件,不应该影响到老版本程序对其的使用。
(4)组件在网络上透明的。客户对本地COM与远程COM的使用应完全一致。
总结下,COM组件式以dll或exe形式发布的可执行代码组成。COM组件是动态链接的,具有客户透明的封装性。
 
COM不是什么
1、COM不是一种具体语言,而是一种编程规范。
2、COM不是的dll,COM的实现利用了dll的动态链接能力,但不是简单的等同。
3、COM不是函数集合。COM组件的功能远大与简单的函数集合。COM在向客户提供功能函数的同时,还提供了一系列线程同步策略(套间),事件回调机制(连接点)等。
 
COM库
COM不仅仅是一套规范,它确实也包含一些具体实现。COM库这一具体实现对所有的客户及组件提供了非常有用的组件管理

COM技术の组件的更多相关文章

  1. IAAS-虚拟化技术组件介绍

    虚拟化技术组件涉及众多,下面对一些组件所处的层级以及定位做个简单的汇总介绍,部分信息来自于网络整理,如有不准确之处,请指正.

  2. 对.net技术组件的分析和选择

    .net很庞杂,学习最忌讳什么?为了学而学,而不是为了用而学.我们不是为了成为教师,所以不要成为书呆子,不要成为"博士",要从庞杂的技术群中选择自己需要的内容进行学习. 如果不加选 ...

  3. Docker 的技术组件

    Docker可以运行于任何安装了现代Linux内核的x64主机上.推荐的内核版本是3.8或者更高.Docker的开销比较低,可用于服务器.台式机或者笔记本.它包括以下几个部分. 一个原生的Linux容 ...

  4. Quora 用了哪些技术(转)

    原文:http://dbanotes.net/arch/quora_tech.html 很多团队都在学习.研究 Quora .前段时间看到这篇 Quora’s Technology Examined  ...

  5. SQL Server 2008 R2 的版本和组件

    SQL Server 2008 R2 的版本和组件 SQL Server 2008 R2   其他版本 SQL Server 2008 SQL Server 2005 SQL Server 2012 ...

  6. Java程序员如何运用所掌握的技术构建一个完整的业务架构

    1.通用架构概述 创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构.这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构 ...

  7. CDN高级技术专家周哲:深度剖析短视频分发过程中的用户体验优化技术点

    深圳云栖大会已经圆满落幕,在3月29日飞天技术汇-弹性计算.网络和CDN专场中,阿里云CDN高级技术专家周哲为我们带来了<海量短视频极速分发>的主题分享,带领我们从视频内容采集.上传.存储 ...

  8. 宜人贷PaaS数据服务平台Genie:技术架构及功能

    上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...

  9. 基于通用jar、动态配置、组件编排的会员任务中心系统设计

    # 一.聊聊本文想说什么:   为更好帮助商家的会员快速成长,保持用户活性,完善用户的成长体系,有赞用户中心-会员成长团队基于现有的业务场景,设计了一套较完备任务中心系统.同时也有很多通用技术组件能够 ...

随机推荐

  1. 写了个pager, 可供参考

    /* Author: Calos Description: patv2 pager !import: this pager goes with the time, we just temporaril ...

  2. Java基础(33):StringBuilder的方法与应用实例(String相关类)

    Java 中的 StringBuilder 类的常用方法 重要的事情说三遍: 在需要频繁对字符串进行修改操作时使用 StringBuilder 的效率比 String 要高 在需要频繁对字符串进行修改 ...

  3. C#: XML Serializer

    这里主要讲如何将一个class序列化为一个string.如下一个class: public class OrderedItem { private string itemName; private s ...

  4. C++之路进阶——hdu2222(Keywords Search)

    /*Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...

  5. jnlp jws

    http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/

  6. 关于header跳转之后的乱码问题

    关于header跳转之后的乱码问题 http://www.360doc.com/content/11/0603/19/7052474_121495648.shtml 问题:不同网站的跳转出现乱码,不同 ...

  7. EBS多OU和多帐套客户化总结

    (一) 多OU总结 . Form多OU实现 ) 创建一个Table,以CUX_AP_CHECK_HEADER_ALL为例 ) 创建Table的两个Synonym(一个不含_ALL,一个以_ALL结尾) ...

  8. ubuntu下搭建nagios

    基本参考 http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html,直接apt-get install的话应该更快.要监控url,参考 ...

  9. 文字处理控件TX Text Control X10独家揭秘(一):数据源自动处理

    TX Text Control即将发布的X10版本,将升级重点还是放到了其比较优势的流式布局报表设计和生成上.慧都获得了来自其开发商Text Control GmbH公司的一手资料,迫不及待的为大家带 ...

  10. HttpWebRequest:百度定位当前位置解析

    HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create("http://api.map.baidu.com ...