0

解決すべき問題: グラフのすべてのノードに優先度 (int 値) を与えます。属性 Graph (JGraphT ライブラリの DirectedGraph タイプ) を持つ DAG クラスがあります。さらに、優先順位を割り当てるにはさまざまなアルゴリズムが必要であり、既存のコードを変更することなく、将来的に新しいアルゴリズムを追加できる必要があります。最初に DAG が作成され、次にユーザーは (GUI で ComboBox を使用して) 使用するアルゴリズムを選択できます。ユーザーはいつでもアルゴリズムを変更できる必要があります。

アプローチ 1: アルゴリズムのインターフェイス (アルゴリズム) を開発し、すべてのアルゴリズムにそのインターフェイスを実装させます。DAG クラスで、新しい属性を追加します。

Algorithm myAlgo;

ユーザーが GUI で異なるアルゴリズムを選択するたびに、そのアルゴリズムをインスタンス化します。

myAlgo = new AlgorithmNumberX;

アプローチ 2: 優先順位付けタスクを個別に (DAG の属性としてではなく) 記述し、静的メソッドを使用して、DAG を引数として送信し、変更された DAG を返すことにより、DAG のノードに優先順位を付けます。

それぞれのアプローチにはどのような利点がありますか?

4

2 に答える 2