COM中的聚合

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

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

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

下载全文与代码 60K


附作者来信:

闻怡洋,你好!

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

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

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

礼!

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...