3

这就是问题所在:我正在开发一个框架(CLCuda,不是最有创意的名称),程序员在其中实例化一个对象,并且根据系统支持的内容(CUDA 或 AMD OpenCL),将使用相应的方法,而无需将任何代码行更改为此。

我有一个名为CLCuda(纯虚拟方法,但可能只是虚拟的)抽象类,实现其方法的两个类是CLCudaCUDACLCudaOPENCL.

我想要这样的东西:根据用户拥有的显卡,实例化一个可以启动 CUDA 或 OpenCL 的对象,该对象可以访问可用平台的方法(通过类CLCudaCUDACLCudaOPENCL)。

我已经编写了CLCudaOpenCLand的方法CLCudaCUDA(很难做到),所以我的问题在于 OOP。

我该如何组织我的课程?

如果有人可以提供帮助...非常感谢!

4

1 回答 1

2

您的问题似乎暗示了“工厂”设计模式。大概您有一种方法可以确定当前主机支持哪个,因此您应该在工厂的实现中利用它。

于 2012-11-13T21:36:43.840 回答