私は入力を取り、出力として構成ファイルを生成するアプリケーションを持っています。正確な入力または出力形式は時間の経過とともに変化する可能性があるので、私は2つのインタフェース、すなわち輸入者と輸出者を定義しました。Javaで子クラスのパラメータを初期化するのに適した方法は?
各コンクリート輸入業者または輸出業者は、動作するために初期化する必要があるさまざまなパラメータを持つことができます。たとえば、インポートデータがCSVファイルから来ている場合は、ファイルのパスのみが必要ですが、データがデータベースから来ている場合は、接続文字列、ユーザー名、パスワードなどが必要です。
私の実装では、現在、次のとおりです。
public interface Importer {
public void setup(Map<String,String> params);
public List<ConfigEntry> getList();
}
public interface Exporter {
public void setup(Map<String,String> params);
public void writeDocument(List<ConfigEntry> entries) throws IOException;
}
設定方法は、GETLIST(前に呼び出される必要がある)、またはwriteDocument()を呼び出すことができます。各子クラスは異なるパラメータを持つことができるため、マップを使用してパラメータを保持します。
JavaBeanスタイルのパラメータの初期化が優先されますか?これは、setConnnectionString()、setCSVFilePath()、setX()を各子クラスに追加することを意味します。
これらのアプローチの利点と欠点は何ですか?
...それが依存...です。 –