C++ COM编程之什么是组件?

什么是组件?

一个组件同一个微型应用程序类似,即都是已经编译、链接好并可以使用的了,应用程序就是由多个这样的组件打包而得到的。各定制的组件可以在运行时同其他组件连接起来以构成某个应用程序。在需要对应用程序进行修改或改进时,只需要将构成此应用程序的组件中的某个用新的版本替换掉即可。

COM组件

COM,即组件对象模型,是一个说明如何建立可动态互变组件的规范,它提供了为保证能够互操作,客户和组件应遵循的一些标准。

COM组件是以Win32动态链接库(DLLs)或可执行文件(EXEs)的形式发布的可执行代码。COM组件必须满足以下条件:

1.COM组件是完全与语言无关的;
2.COM组件可以以二进制的形式发布;
3.COM组件可以在不妨碍老客户的情况下被升级;

COM组件可以透明的在网络上被重新分配位置。

使用组件的优点

1.应用程序定制

组件架构从本质上讲就是可被定制的,因用户可以用更能满足他们需要的组件来将某个组件替换掉;

2.组件库

组件架构最引人注目的优点之一是快速应用程序开发。这一优点可以使开发人员从某个组件库中取出所需要的组件并将其快速地组装到一块以构造所需的应用程序,如同搭积木块一样;

3.分布式组件

组件架构可以使得开发这类分布式应用的过程得以简化。实际上,客户机/服务器式的应用就是向组件架构跨出的第一步。在那里整个应用程序被分成两部分:客户机部分及服务器部分。

总结

COM提供了编写组件的一个标准方法。遵循COM标准的组件可以被组合起来以形成应用程序。至于这些组件是谁编写的、如何实现的都是无关紧要的。每一个COM组件均可同其他组件一起使用。实现这种可动态改变组件的关键问题是信息的封装。对于封装,COM是通过组件和客户之间的连接或接口来实现的。对于接口,我下篇博文进行总结。

(0)

相关推荐

  • Java编程Commons lang组件简介

    跟java.lang这个包的作用类似,Commons Lang这一组API也是提供一些基础的.通用的操作和处理,如自动生成toString()的结果.自动实现hashCode()和equals()方法.数组操作.枚举.日期和时间的处理等等. 这一组API的所有包名都以org.apache.commons.lang开头,共有如下8个包: org.apache.commons.lang org.apache.commons.lang.builder org.apache.commons.lang.e

  • Android编程中的四大基本组件与生命周期详解

    本文实例讲述了Android编程中的四大基本组件与生命周期.分享给大家供大家参考,具体如下: Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最

  • ExtJS4 组件化编程,动态加载,面向对象,Direct

    ExtJS4推荐定义类的时候均使用Ext.define,利用xtype动态加载 修改了以前的一个登陆窗口,感觉用官方推荐的方法还是很不错的 但还有一些问题没有想得非常清楚,先把代码贴出来一起研究下.请看代码中的注释~~ 使用Ext+.Net,用Direct模式传递数据 Default.aspx: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3

  • Android编程四大组件之BroadcastReceiver(广播接收者)用法实例

    本文实例讲述了Android编程四大组件之BroadcastReceiver(广播接收者)用法.分享给大家供大家参考,具体如下: 这里介绍如何创建广播.如何发送一个无序广播和有序广播.以及监听短信以及监听呼出电话(当我们发短信和打电话,系统就会发一个广播,我们可以拦截此广播进行监听短信以及监听呼出电话). 定义广播接收者 1.定义类继承BroadcastReceiver,重写onReceive方法 2.当接收到匹配广播之后就会执行onReceive方法 3.清单文件中声明<receiver>,

  • PHP 组件化编程技巧

    但其在UI方便却有些力不从心,不仅是PHP,任何一种Web编程语言在设计UI都有类似的问题,宿主语言与HTML混和在一个文件中,大量重复的 HTML代码,毫无任何技术含量,但又非常的费时费力.于是我就希望能够对之前做过的PHP项目UI部分进行总结和归纳,将其封装为一个个小的组件(就像 Delphi中的组件一样),在界面上呈现为统一的风格,日后可以再针对这结组件编写多个CSS文件,提供"换肤"功能. 所有的组件都继承自AbatractComponent这个类,并实现其中的toString

  • Android编程开发之Spinner组件用法

    本文实例讲述了Android编程开发之Spinner组件用法.分享给大家供大家参考,具体如下: Spinner组件组要用显示一个下拉列表,在使用中需要用到适配器Adapter,下面是一个该组件的使用示例 首先是布局文件main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res

  • C++ COM编程之什么是组件?

    什么是组件? 一个组件同一个微型应用程序类似,即都是已经编译.链接好并可以使用的了,应用程序就是由多个这样的组件打包而得到的.各定制的组件可以在运行时同其他组件连接起来以构成某个应用程序.在需要对应用程序进行修改或改进时,只需要将构成此应用程序的组件中的某个用新的版本替换掉即可. COM组件 COM,即组件对象模型,是一个说明如何建立可动态互变组件的规范,它提供了为保证能够互操作,客户和组件应遵循的一些标准. COM组件是以Win32动态链接库(DLLs)或可执行文件(EXEs)的形式发布的可执

  • 说说Vue.js中的functional函数化组件的使用

    Vue.js 组件提供了一个 functional  开关,设置为 true 后,就可以让组件变为无状态.无实例的函数化组件.因为只是函数,所以渲染的开销相对来说,较小. 函数化的组件中的 Render 函数,提供了第二个参数 context 作为上下文,data.props.slots.children 以及 parent 都可以通过 context 来访问. 1 示例 这里,我们用  functional 函数化组件来实现一个智能组件. html: <div id="app"

  • React 高阶组件HOC用法归纳

    一句话介绍HOC 何为高阶组件(HOC),根据官方文档的解释:"高阶组件是react中复用组件逻辑的一项高级技术.它不属于react API的组成部分,它是从react自身组合性质中抽离出来的一种模式.具体来说,高阶组件是函数,它接受一个组件作为参数,然后返回一个新的组件 使用场景 将几个功能相似的组件里面的方法和react特性(如生命周期里面的副作用)提取到HOC中,然后向HOC传入需要封装的组件.最后将公用的方法传给组件. 优势 使代码简洁优雅.代码量更少 HOC(高阶组件) /* HOC(

  • 微信小程序新手入门之自定义组件的使用

    前言 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程.所有自定义组件相关特性都需要基础库版本 1.6.3 或更高. 开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护. 一.小程序的好处和特点 1.好处 开发者:小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换:也能节约开发和推广成本. 用户:能够节约使用时间成本和手机内存空间.对于开发者

  • React函数组件与类组件使用及优劣对比

    目录 一.类组件的问题 原因一.因为this带来的问题: 问题描述 问题解析 原因二.类组件代码量比函数组件多: 原因三.类组件过于臃肿不易拆分: 二.函数组件的问题 挂载阶段:getDerviedStateFromProps VS 无 挂载阶段:UNSAFE_componentWillMount VS 无 挂载阶段:componentDidMount VS useEffect render: 生命周期,更新阶段:UNSAFE_componentWillRerciveProps VS 无 生命周

  • React中父组件如何获取子组件的值或方法

    目录 父组件获取子组件的值或方法 方法一 方法二 方法三 React函数式组件传值之子传父 具体案例 效果展示 父组件获取子组件的值或方法 先来说下从哪获取的启发,想要从父组件获取子组件的值或方法... 一次写代码的时候,用 Antd 中的 Modal 包裹了一个子组件,子组件中包含 input 输入框,想要在点击对话框上面确定按钮时(即Modal 自带的 onOk方法),拿到其中输入的值 下面用一个父组件(Father.js)和子组件(Hearder.js)来演示如何能拿到值和方法: 方法一

  • 基于Python的GUI图形用户界面编程详细讲解

    目录 前言 常用的GUI库 1.Tkinter 2.wxPython 3.PyQT 基于tkinter模块创建GUI程序步骤 主窗口设置 主窗口位置和大小 GUI编程整体描述 常用组件汇总列表 GUI应用程序类的经典写法 总结 前言 在最早程序的设计中,程序和用户的交互都是通过控制台来完成的,而GUI(Graphics User Interface),即图形用户编程,是Python 所提供的一个丰富的组件,可以快速的实现使用图形界面和用户交互. 常用的GUI库 1.Tkinter tkinter

  • 关于学习 Flex 的一点建议(转载)

    Flex是什么?RIA(Rich Internet Applications).Flex 是 Macromedia发布的presentation server(展现服务),它是java web container或者.net server的一个应用,根据.mxml文件(纯粹的xml描述文件和actionscript)产生相应得.swf文件,传送到客户端,由客户端的flash player或者shockwave player解释执行,给用户以丰富的客户体验.说这么多,还不如看实例: 苹果树下:ht

  • 推荐几本Android程序员必读书籍

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发,从语言上来看,Android应用开发基于的是Java语言,但是这都是我们要自己下功夫去学习的事情. 不管你是Android菜鸟还是Android大神,一定能够找到一本适合自己阅读的书籍,抓紧来看看吧! 高尔基曾说"书是人类进步的阶梯",今天小编就为大家整理了一些优秀Android程序员都会阅读的书籍,帮助大家成为一个优秀的程序员 第1本书

随机推荐