Design pattern per istanziare le implementazioni in base alle proprietà

4

Ho un'interfaccia:

public interface MyInterface{}

E due implementazioni:

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

Il mio programma è un CLI. Voglio avere una classe, che prenda argomenti di riga di comando, la analizzi e crei una nuova istanza di implementazione corretta:

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

C'è un modello da usare qui? Non sono sicuro che il modello di fabbrica astratto si adatta a questo, in quanto ho una sola implementazione della fabbrica.

Se non è il modo corretto di farlo (perché?), allora come è più accettabile farlo?

Grazie in anticipo

    
posta Rahul Katrakhtalapali 09.04.2018 - 12:05
fonte

1 risposta

6

Questo è un caso per il schema di fabbrica o una combinazione di fabbrica e builder . Si passa il parametro factory per la variante richiesta e si ottiene un oggetto istanziato. Se è necessaria un'ulteriore configurazione, è possibile astrarre questo con il modello di builder.

I am not sure that abstract factory pattern suits it, as I have only one implementation of the factory.

A seconda dei tuoi reali requisiti, farebbe un semplice factory.

    
risposta data 09.04.2018 - 12:34
fonte