COM中的聚合

本文介绍了COM用以实现组件复用的包容与聚合机制,二者类似于继承。包容是外部组件包含内部组件接口指针并转发调用请求;聚合则是外部组件直接将内部组件接口指针返回给客户。文章重点介绍聚合,还提及作者后续会用MFC和ATL做实用通信组件。

包容与聚合是COM用以实现组件复用的技术或者说是一种机制,它们类似于继承。

当一个组件(外部组件)包容另一个组件(内部组件)时,外部组件包含一个内部组件接口的指针,并重新实现此接口供其客户调用。在重新实现的这个接口中,外部组件只是简单的将调用请求转发给内部组件。包容的实现比较简单,本文重点介绍聚合。

当外部组件聚合内部组件时,外部组件没有重新实现内部组件的接口和进行调用转发,而是把内部组件接口的指针直接返回给客户,从而使客户能够直接与内部组件打交道。但是,必须保证客户不能访问内部组件的IUnknown接口,不能也没有必要让客户知道它正在与另一个组件--即所谓的内部组件交互,否则一切将变得十分混乱。……

下载全文与代码 60K


附作者来信:

闻怡洋,你好!

贵网站办得很好,现奉上近作一篇及其示例程序和代码,以示支持。

因开发任务过重,这篇文章断断续续写了半年才成这个样子,谬误之处还望斧正!示例程序只做原理之说明,并无多大实用性。以后我会用MFC和ATL分别做一个实用的通信组件,既说明实现技术,又有一定参考使用价值。

惟有大家共同的提高,才是真正的提高。

礼!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值