私は次の難問に直面しています。私たちのソフトウェアには、アルゴリズムオブジェクトの抽象的な基本クラスがあります。これらのオブジェクトにはすべて、次のような共通のexecute()
メソッドがあります。
class Algorithm
{
public:
// [...]
virtual void execute() = 0;
// [...]
};
実装するアルゴリズムごとに、基本クラスから継承し、ロードされたすべてのアルゴリズムオブジェクトを中央の場所に格納するだけです。ここまでは順調ですね。
問題は現在、アルゴリズムのパラメータにあります。アルゴリズムごとに、(外部クラスによって)設定する必要のあるパラメーターを記述できるようにする必要があります。この目的のために、各アルゴリズムParameterList
にそのパラメーターを含むオブジェクトを与えました。私たちにとって、パラメータはある種のタイプ(などint
)とラベル(「反復回数」など)で構成されていることを明確にする必要があります。
ParameterList
問題は、ある種のGUIに接続したいときに始まります。明らかに、私たちのアルゴリズムには、使用しているグラフィカルAPI(Qt、GTKなど)の「知識」があってはなりません。ただし、同じ側で、たとえばアルゴリズムにファイル名が必要であることを指定することにより、アルゴリズムパラメータを意味的に記述できるようにする必要があります。このファイル名がどのように表示されるかは、GUI次第です。
ParameterList
これをある種のセマンティックタイプの知識と組み合わせる方法はありますか?
この質問は非常に曖昧に聞こえます。ただし、重要なコード例を投稿することは許可されていません(NDAの理由により)。それで、過去に誰かが同様の問題に直面したことがありますか?
まとめ:GUIの正確な詳細を知らなくても、オブジェクトがGUIに必要なパラメーターを記述できるようにします。