私のアルゴリズムは、それぞれが特定のライブラリ (MKL と ITK) を使用する 2 つのバージョンで実装されています。これらの実装は、ライブラリの 1 つしかユーザーが利用できないため提供されています。コンパイル時には、1 つだけをロードしてコンパイルする必要があることに注意してください。ここでどのデザインパターンを使用するべきか混乱しました。
ありがとう
私のアルゴリズムは、それぞれが特定のライブラリ (MKL と ITK) を使用する 2 つのバージョンで実装されています。これらの実装は、ライブラリの 1 つしかユーザーが利用できないため提供されています。コンパイル時には、1 つだけをロードしてコンパイルする必要があることに注意してください。ここでどのデザインパターンを使用するべきか混乱しました。
ありがとう
C++ では、ポリシーと呼ばれるテンプレートの方法で「戦略設計パターン」を実行します。これについては、Andrei Alexandrescu の著書「Modern C++ Design」の最初の章で詳しく説明されています。なぜ、テンプレートのように、あなたは尋ねるかもしれませんか? これはコンパイル時であり、使用するコードのみがコンパイルされるためです。
実際にこれを使用した経験があまりないため、あまり説明できませんが、簡単に言えば、テンプレートは型 (int、Person、float など) である必要はなく、関数またはクラス。したがって、次のようなコードを作成できます
Printer<ScreenStrategy> p; // or wathever!