我以前分析过P7ZIP,他是用组件来构建的,但我不知道为什么,明要面试,简历上写了以前分析过P7ZIP,怕考官问这个啊,大家明白的给说说谢谢!

解决方案 »

  1.   

    P7ZIP是压缩软件,和你的com编写有什么关系
      

  2.   


    就是为什么p7zip要基于COM来做,现在发现FIREFOX也是基于COM的,为啥不用纯面向对象就好了?
      

  3.   

    就是object-oriented,没有interface-based
      

  4.   


    最重要的原因是,OOP无法在二进制的级别进行代码隔离,也就是说,如果你创建一个类,然后很多应用使用了该类,那么,现在由于某种原因需要修改该类,比如原来一个short型数据需要改成long,那么,麻烦就来了,所有使用该类的程序全部要重新编译;但是,使用com,那么你可以轻松的将类中那个数据改变成long类型
    只要接口不变(函数名称,参数及类型,返回值)那么,只要编译该类后,复制替换原来的相同文件,这样达到了二进制层次的隔离