3

最近、Java で自分用の一種の「ツールボックス」を作成することを検討しています。頻繁に使用される標準のアルゴリズムとデータ構造で構成されますが、実装するのは面倒です。(私はグラフ、ツリーなどを考えています)

これを行う最良の方法は何ですか?ジェネリックを使用するか、抽象クラスを使用することを考えていました。このようにして、メソッドを使用したい任意のオブジェクトに getGraphData() メソッドなどを提供するだけで済みます。

ただし、抽象クラスを使用すると継承が強制され、問題が発生する可能性があるため、ジェネリックの方が優れていると思います。

4

3 に答える 3

3

これはライブラリと呼ばれます...

汎用のものはJavaライブラリにあるはずです。必要なものが不足している場合は、Google Collections などの追加のライブラリを試すことができます。ドメイン固有のライブラリも必要になる場合があります。

于 2009-06-17T13:51:00.600 に答える
0

ほとんどの場合、彼らが何をしているのかを本当に知っている人々によって書かれた既存のライブラリを使用する必要があります-それらのライブラリは徹底的にテストされ、優れたパフォーマンスを達成するために効率的なアルゴリズムで実装されています。

ただし、自分のライブラリを作成する場合は、最高のライブラリをエミュレートしてみてください。JavaコレクションGoogleコレクションがどのように設計されているかを見てください。提供されているインターフェースの種類(ListMapなど)と、存在する抽象クラスと実装の種類を確認してください。

次に、教育目的の場合は、先に進んで独自の実装を作成します。それは楽しくてエキサイティングで間違いなく挑戦的でなければなりません。動作が期待どおりであるかどうかを確認してください。通常の使用法とエッジケースを確実にカバーするようにテストを作成してください。

ただし、教育目的以外の実際の使用にはお勧めしません。在学中に間違いを犯すことは大したことではありませんが、現実の世界ではまったく別の話です。

于 2009-06-17T14:05:53.503 に答える
0

それについて行く2つの方法:

方法 1:

  1. クラス グラフを作成する
  2. それぞれ独自のアルゴリズムに対応する Graph クラスのメソッドを作成します。

方法 2:

  1. クラス Graph を作成します (純粋なデータ構造)
  2. クラスアルゴリズムを作成する
  3. Algorithm をサブクラス化して、独自の新しいアルゴリズムをそれぞれ定義します。

もちろん、STL アルゴリズムを見て、同様の方法でグラフ アルゴリズムをモデル化するのが最善です。データ構造と関連するアルゴリズムをオープン ソース化することもできます。このようにして、コミュニティは新しいアルゴ、効率性の考慮事項、既存のライブラリへの/との統合などを処理できます。

ジュニア。

于 2009-06-17T13:50:32.817 に答える