COM学习笔记6_COM的复用:包容和聚合
来源:互联网 发布:php财务管理 源码 编辑:程序博客网 时间:2024/05/03 04:18
继承可分实现继承和接口继承
接口继承 :一个类只能继承另一个接口。一个接口是里面只有纯虚函数,没有数据和函数实现
实现继承 :一个类继承另一个类,包括基类中的各种数据和实现
COM不支持实现继承,因为实现继承会造成较大耦合,违背了COM的思想。
COM实现复用可采用包容和聚合
--------------------------------------------------------------------------------------------------------
包容类似于设计模式中的代理模式,外部组件将接口调用转发给内部组件
例如组件CB(内部组件)实现了IY接口,组件CA(外部组件)要复用组件CB的IY接口
--------------------------------------------------------------------------------------------------------
聚合则直接把内部组件的接口指针返回给客户
相对来说包容的实现比较简单,而聚合复杂在于它不能仅仅简单的把内部组件的接口指针返回给客户,
这是由于QueryInterface有一定的规则,仅仅简单暴露内部组件的接口指针会违背这些规则。
所以内部组件必须有一个标志,判断自己是否被聚合,在不同情况下采取不同的方式处理QueryInterface,AddRef和Release接口。
这个标志就是维护一个指针,当他为空时,表示自己没有被聚合,否则,则自己被聚合,这个指针指向对应外部组件。
在CoCreateInstance和IClassFactory::CreateInstance原型中都有一个IUnknown *pUnkOuter参数,它就是用来初始化这个指针标志的。
- COM学习笔记6_COM的复用:包容和聚合
- COM技术内幕学习笔记---第八章---组件复用:包容和聚合
- COM 的聚合和包容
- com学习笔记(7)包容与聚合
- COM复用的中Containment(包容)和Aggregation(聚合)的实现
- COM复用的中Containment(包容)和Aggregation(聚合)的实现
- COM笔记-包容与聚合
- COM笔记-包容与聚合
- COM笔记-包容与聚合
- COM---组件复用:包容与聚合
- COM特性 包容和聚合
- COM特性 包容和聚合
- COM复习(一) : COM复用的中Containment(包容)和Aggregation(聚合)的实现
- 包容和聚合(COM技术内幕笔记五)
- COM 技术内幕学习之八(包容和聚合)
- COM学习笔记1_COM初步探索
- COM学习笔记1_COM初步探索
- COM学习笔记1_COM初步探索
- 传智播客Spring视频教程学习笔记17 18
- Form. 相关技巧
- oracle Nls_Charset_Id 字符集编码表
- 视频解码优化
- SQL SERVER 2000 连接ORCLE数据库 (加了一个存储过程的实例)
- COM学习笔记6_COM的复用:包容和聚合
- COM学习笔记7_跨进程COM组件
- Linux 下修改计算机名称
- POJ--2388 Who's in the Middle (续)
- org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor
- 深入理解Linux的启动过程
- COM学习笔记8_IDispatch (调度接口) 自动化
- JDBC连接各种数据库
- GWT out of memory的三个处理办法