客户端:使用智能指针和包装类
1。智能指针:简单说就是创建一个类,叫智能指针类,它封装了AddRef() 和 ReleaseRef().对使用这个类的人不用关心计数问题。具体做法:重载->操作符,把此调用转发给内部的接口指针去做。(聚合)
2。包装类:可以包含很多个接口,而且要实现所有接口。(包容)
服务器端(组件):
1。CUnkown类:做一个基类,让基类实现AddRef() 和 Release(), 这样继承它的组建就不用关系计数问题了。
组件继承后,要重载几个函数:
NondelegateQueryInterface(): 因为基类Cunkonwn不知道组建有什么接口,至于为什么是NondelegateQueryInterface,去看我的COM聚合那个Thread
Init() 创建内部组建用的,一样,基类可不知道你有什么内部组建
FinalRelease(), 释放内部组建。 。。。。。。。。。。。。。。。
2。 CFactory: IClassFactory
包含了一个FactoryData的数据结构的成员:可以调用组建里边定义的CreateInstance(),还提供一些组建信息。
本文介绍了客户端中智能指针的应用及其如何通过重载操作符简化引用计数管理。同时探讨了包装类的设计思路,以及服务器端如何利用CUnknown基类实现资源管理,并通过CFactory类提供组件实例创建。

被折叠的 条评论
为什么被折叠?



