佚名通过本文主要向大家介绍了lol新手问题,新手问题,英雄联盟新手问题,lol新手礼包问题,新手班主任常见问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 新手问题,请问类工厂对象和COM类是什么关系啊?
描述:
解决方案1:
描述:
我一直觉得有些迷惑,不明白为什么一定要用到类工厂(ClassFactory)。
我的初步理解是这样的,用COM类只是声明及定义了一些接口,但是它像抽象类一样是不能直接定义对象的。那么在实际使用COM时,必须生成此COM类的一个实例。所以,就定义了IClassFactory接口,利用它来生成COM类的实例。
另外,类工厂是不是COM的一个特殊接口啊?就像IUnknown一样。我看〈vc技术内幕〉时,说注册表注册COM类时,类工厂对象也必须被注册。不是很明白这句话的意思。---接口还要注册么?
不知道我的理解对不对啊?刚学COM,请大家给予指点。谢谢!
解决方案1:
类厂用来抽象组件的create过程,客户不需要知道组件的详细情况,也不需要知道类厂的详细情况,只要知道CoCreateInstance可以创建组件即可。而CoCreateInstance内部调用DllGetClassObject来生成该组件的类厂,由于类厂有组件的作者撰写,所以对组件类可谓知根知底,由类厂来生成组件完全行得通,这样客户和组件就进一步划分,客户只能查询该组件是否支持某借口,而对组件的其他情况一无所知,这样的划分可以使组件和客户间的耦合更小。