现在讨论以下tear   off技术
tear   off只要用于当接口很多,容易造成接口 "膨胀 "的情况.
比如:
class   CBeachBall   :
    public   CComObjectRootEx <CBeachBall> ,
    public   ISphere,
    public   IRollableObject,
    public   IPlaything,
    public   ILethalObject, <====不经常用
    public   ITakeUpSpace,
    public   IWishIWereMoreUseful,
    public   ITryToBeHelpful,
    public   IAmDepressed   {...};

CBeachBall一共实现了8个接口,这样每个组件实例都要由8个vptr,需要额外32个字节的开销.
而这8个接口并不是每个都很常用.

比如ILethalObject就不经常,但还占用每个组件实例的4个字节的空间---浪费!!

怎么办?

使用tear   off技术来解决!

不是ILethalObject不常用吗,   那就将其从接口列表中去掉 !当真有ILethalObject接口请求时,动态生成
实现ILethalObject接口的实例,然后调用这个实例中的实现

tear off技术相关推荐

  1. 收集的计算机编程电子书目录,仅供日后查阅方便

    本人有收集电子书的癖好.每日在网上收集经典的电子书籍,尤其喜欢原版的,看起来舒服.不过总是心血来潮,当时下载后瞅几眼,之后就束之高阁,再也不问津了.很为此苦恼,过后找某本书时也总是不知道在哪,为了查找 ...

  2. Java实现lucene搜索功能

    直接上代码: package com.sand.mpa.sousuo;//--------------------- Change Logs---------------------- //<p ...

  3. 计算机三级网络技术查漏补缺

    计算机三级网络技术查漏补缺 DHCP(Dynamic Host Configuration Protocol) DMZ(demilitarized zone) 可信计算机评估准则 VLAN 集线器工作 ...

  4. Google VP8 Code 首次深入技术分析 1

    The first in-depth technical analysis of VP8 首次深入技术分析 Back in my original post about Internet video, ...

  5. 全国计算机等级三级网络技术试卷详解(二)

    请点击↑关注.收藏,本博客免费为你获取精彩知识分享!有惊喜哟!! 1. 下列属于广域网QoS技术的是() A) RSVP B) PSTN C) MSTP D) ISDN 属于广域网QoS技术的是RSV ...

  6. 计算机三级网络技术(选择高频考点)

    2.3.1 弹性分组环 RPR 每一个节点都执行SRP公平算法 与 FDDI 一样使用双环结构 传统的 FDDI 环,当源结点向目的节点成功发送一个数据帧之后,这个数据帧由源结点从环中回收 而 RPR ...

  7. 全国计算机等级考试三级网络技术选择题考点

    目录 第一章  网络系统结构与设计的基本原则 第二章  中小型网络系统总体规划与设计方法 第三章  IP地址规划技术 第四章  路由设计基础 第五章  局域网技术基础应用 第六/七章  交换机/路由器 ...

  8. 白硕:区块链技术与数据隐私(附视频)

    本讲座选自中科院博士生导师白硕于2018年3月29日在清华大数据"应用·创新"系列讲座上所做的题为<区块链技术与数据隐私>的演讲. 以下为讲座现场视频,建议使用wifi ...

  9. 虚拟化KVM技术详解

    KVM 介绍(1):简介及安装 http://www.cnblogs.com/sammyliu/p/4543110.html 学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 ...

最新文章

  1. GitHub标星14000+,阿里开源的SEATA如何应用到极致?
  2. 自定义关机计算机,在win7系统中自定义设置关机壁纸教程介绍
  3. python简单代码编写-Python | 编写一个简单的Excel处理脚本
  4. Python零碎知识(3):对文件的基本操作
  5. using语句之-释放资源和异常处理
  6. amp 调用链_调用链选型之Zipkin,Pinpoint,SkyWalking,CAT
  7. 通电后第一次开机黑屏_电脑无法开机怎么办,8 种情况的修复方法
  8. 【Linux就该这么学 20期培训笔记 01】部署虚拟环境安装linux系统
  9. 基于java的数据结构学习——动态数组C++类模板(含拷贝构造,重载常见运算符)
  10. mdac版本过低怎么解决_工业铝型材硬度过低怎么解决
  11. delphi备份Oracle,Oracle数据库自动备份工具(Delphi源码)
  12. 【大话设计模式】模式二 :工厂模式
  13. 竞争情报的网络信息源
  14. excel合并两列内容_比Excel公式快10倍,史上最牛合并表格工具来了!!
  15. jquery AJAX清除IE缓存问题
  16. 为 什 么 说 Synchronized 是 一 个 悲 观 锁 ?
  17. 数据库SQL实战-- 获取员工其当前的薪水比其manager当前薪水还高的相关信息
  18. 传统行业如何了解人工智能?
  19. java websocket实现即时聊天系统
  20. C++取整,四舍五入

热门文章

  1. 《NFL橄榄球》:丹佛野马·橄榄1号位
  2. 招商仁和青云卫2号重疾险怎么样?适不适合给小孩子配置?
  3. 如何用Python下载并分析期货持仓数据
  4. Linux操作之多台服务器配置免密登录
  5. android 混淆 去掉log,Android去掉/混淆Log,反编译都看不到
  6. python设置字符_python字符串操作
  7. 神经崩塌Neural Collapse
  8. ABAP-HTTP发送JSON
  9. M1卡id号的计算算法
  10. 一看就懂的平面设计介绍