COM中通过类厂产生对象,由对象创建组件对象,再进行操作。
我的问题是:为什么要有类厂这个概念?????
由组件类产生组件对象不就可以了吗?类厂到底有什么用?

解决方案 »

  1.   

    类厂最大的作用就使用上层调用者不需要与组件的具体实现类有关系。比如服务程序是这样实现COM组件是这样的,
    class IUnknownImp : public IUnknown
    {
    }如果有没类厂那客户只能这样得到IUnknown接口了,
       static_cast<IUnknown*> ( new IUnknownImp );
    这样客户就需要知道服务具体实现类定义了。如果服务方把服务类改为
    class IUnknownImpDD : public IUnknown
    {
    }
    那么客户程序也就相应地改为
    static_cast<IUnknown*> ( new IUnknownImpDD );这样一来,服务程序一改,客户程序也跟着改,那程序还有什么可维护性啊!
    看一下《设计模式》
    吧!