读书人

请问个设计有关问题

发布时间: 2012-03-27 13:44:24 作者: rapoo

请教个设计问题
请教大家个程序设计问题.为了存储图形数据写了两个类, 两个类从一个纯虚类派生下来.一个代表vedio memory 里面的内存块,一个代表system memory 里面的内存块,分别为类A,B,这个两个类要有在DX表面上把图像绘制出来的功能函数,由共同的基类提供接口。由于我不想让用户知道他们的数据实际上是存在哪个地方,所以加了一个句柄类C来抽象这两个类,用户要存储的时候只要创建一个C对象,C自动判断应该存在vedio或者是system memory,用户要绘制的时候,由C调用AB 基类提供的虚函数来绘制。现在出现一个问题。就是类A可以使用硬件加速API来绘制,所以要求是在目标内存不被锁定的情况下才能绘制,而类B要求在目标内存锁定的情况下才能绘制。如果基类的接口接受一个DX表面指针,那么B类必须每次绘制的每次绘制的时候都加锁解锁,很浪费效率。请问怎么设计才好?


[解决办法]
代理模式??
[解决办法]
楼主可以使用工厂方法

返回基类指针 createInstance(参数你的存储类型)
或是根据当前情况,判断是应该用A,还是用B,再创建一个类

读书人网 >C++

热点推荐