• Com组件的两种复用方式:包容与集合的区别


    最近在看《ATL开发指南》,学习下ATL框架,应该是等同于MFC框架,是对COM这种技术封装。

    1. Com包容也被称作委派,其实类似于C++中类的组合复用模式,类的组合是我们熟悉的。所以概念上理解很容易。实现起来,主要通过外部组件完全控制内部组件的生存期,外部组件内部维护一个内部组件实例,外部组件为了扩充提供内部组件的接口必须同样声明相应的接口,实现部分则简单地调用内部组件的接口。
    2. Com集合也是一种组件复用方式,与包容很相似,唯一的区别就是内部组件接口直接对外公开。这种实现技术上稍微比包容复杂,它是通过将内部组件的IUnknown指针委托给外部组件的IUnknown指针,统一管理组件的接口。
    在网上看到过这样一段很形象的描述:

    一个商店有一个老板和两个店员a、b,b已经工作很多年了,a是新来的。于是有两种工作方式。 

    当一个客户要买东西时,他找到老板,说要买东西,于是老板让他直接找b,因为b对商店很了解(聚合)。以后再没有老板什么事了。

    或者老板告诉a该干什么,a去干了,然后汇报给老板,老板再汇报给客户,客户可能结束这次访问或者告诉老板还有什么要求,于是老板再让a去做,实际做事情的a和客户之间需要老板来协调(包容)。

    上面这个隐喻主要从两种方式的工作原理进行区分,处理同样一件事的内部流程是有不同的,仅从概念上理解是比较困难的,实践中去品味。 

  • 相关阅读:
    怎么为学生布置作业
    新学期的第一节Android课
    RUCSE小组博客列表
    test
    个人最终总结
    黄金点小游戏的设计与实现
    WordCount 程序的实现
    阅读下面程序,请回答如下问题:
    Visual Studio 2015的安装和简单的单元测试
    构建之法--软件工程学习随笔之二
  • 原文地址:https://www.cnblogs.com/wxfasdic/p/1851515.html
Copyright © 2020-2023  润新知