3

問題は次のとおりです。プログラマーが1つのオブジェクトをインスタンス化するフレームワーク(CLCuda、最もクリエイティブな名前ではありません)を開発しており、システムがサポートするもの(CUDAまたはAMD OpenCL)に応じて、対応するメソッドを使用します。コードの任意の行をそれに変更します。

私は(純粋仮想メソッドですが、単なる仮想メソッドである可能性があります)という名前の抽象クラスを持っており、そのCLCudaメソッドを実装する2つのクラスはとです。CLCudaCUDACLCudaOPENCL

CLCudaCUDA私はこのようなものが欲しかった:ユーザーが持っているグラフィックカードに応じて、利用可能なプラットフォームのメソッドにアクセスできる(クラスまたはを介して)CUDAまたはOpenCLを開始する1つのオブジェクトをインスタンス化しますCLCudaOPENCL

CLCudaOpenCL私はすでにandのメソッドをコーディングしCLCudaCUDAているので(それを行うのは困難です)、私の問題はOOPにあります。

クラスをどのように構成できますか?

誰かが助けることができるなら...どうもありがとう!

4

1 に答える 1

2

あなたの問題は「ファクトリー」デザインパターンを示唆しているようです。おそらく、現在のホストでサポートされているものを判断する方法があるため、ファクトリの実装でそれを活用する必要があります。

于 2012-11-13T21:36:43.840 に答える