2

私は設定ファイルを取得するクラスAを持っています:

this.getClass().getResource("cfgFile");

ここで、A の cfgFile を必要とする新しいクラス B を作成しました。今私はやっています:

A.class.getResource("cfgFile");

しかし、それは正しくありません。

ABCfg のような新しいクラスを作成し、そのリソース パスに cfgFile を追加するつもりでしたが、それが最善の方法かどうかはわかりません。

これを行う最善の方法は何ですか?

読んでくれてありがとう!

4

2 に答える 2

3

getClass().getResource()の新しい静的メソッドで をラップすることで、これをカプセル化できますA。このようにして、呼び出しコードに影響を与えることなく、将来的に実装を柔軟に変更できます。

構成情報の提供に関して他の責任がある場合Aは、このためだけに新しいクラスを作成する方がよいでしょう。ただし、呼び出しをカプセル化することにgetResource()はまだ価値があります。

于 2009-08-06T16:01:54.470 に答える
1

おそらく、ある種の構成クラスを作成するか、構成データを取得する別の方法を提供する必要があります。B は、A の構成がどこにあるか、または A の構成が必要であることさえ知っていることに依存すべきではありません。Dependency Injectionを調べることをお勧めします。

たとえば、B は、その構成を見つける場所を知る責任を B に持たせるのではなく、そのジョブを実行するために必要な構成で構築できます。後者のアプローチは、テストがますます困難になる密結合コードにつながります。

于 2009-08-06T16:32:35.123 に答える