web-dev-qa-db-ja.com

プロパティに応じて実装をインスタンス化するデザインパターン

私はインターフェースを持っています:

public interface MyInterface{}

そして2つの実装:

public class Imp1 implements MyInterface {}
public class Imp2 implements MyInterface {}

私のプログラムはCLIです。コマンドライン引数を取り、それを解析して、正しい実装の新しいインスタンスを作成するクラスが必要です。

public class MyFactory {
    public MyInterface getMyInterface(CommandLineArgs args) {
       ....
    }
}

ここで使用するパターンはありますか?ファクトリの実装が1つしかないため、抽象的なファクトリパターンが適しているかどうかはわかりません。

それを行う正しい方法ではない場合(なぜ?)、それを行う方がどのように受け入れられますか?

前もって感謝します

4
Rahul

これは factory pattern またはfactoryと builder pattern の混合のユースケースです。要求されたバリアントのパラメータをファクトリに渡し、インスタンス化されたオブジェクトを取得します。さらに構成が必要な場合は、ビルダーパターンを使用してこれを抽象化できます。

ファクトリの実装が1つしかないため、抽象的なファクトリパターンが適しているかどうかはわかりません。

実際の要件に応じて、単純なファクトリが行います。

6
Thomas Junk