Decidere tra due classi da inizializzare su un'interfaccia al momento dell'inizio di un programma; e usando queste impostazioni per tutto

1

Nel mio programma ho bisogno di creare file xls o xlsx e il tipo di file è scelto usando un'opzione in un file di proprietà.

Ecco come possiamo cambiare il tipo di file xls e xlsx usando il codice java

Per xls:

Workbook workbook =  new XSSFWorkbook();

Per xlsx:

Workbook workbook =  new HSSFWorkbook();

E quello che faccio è, per creare ogni file, controllo la variabile che contiene l'opzione del tipo di file nel file delle proprietà.

if(variable which contains the filetype option in properties has xls )
{
    Workbook workbook =  new XSSFWorkbook();
}
else
{
    Workbook workbook =  new HSSFWorkbook();
}

Lo sto facendo per sempre singoli file e i nostri processi implicano la creazione di molti file. Esistono anche le condizioni per la creazione del nome file per questi file. C'è un modo per correggere una classe specifica (XSSFWorkbook | HSSFWorkbook) al momento dell'inizializzazione del programma e usarla per tutto il programma invece di controllare la condizione per ogni file. Ho pensato al pattern singleton ma è l'uso di un singolo oggetto non di classe.

    
posta padippist 29.07.2016 - 08:56
fonte

1 risposta

4

Vuoi il modello Factory. Inietti un factory in grado di creare Workbook s nelle posizioni che ne hanno bisogno e inserisci una XSSFWorkbookFactory o una HSSFWorkbookFactory a seconda della proprietà.

Per questo, probabilmente vorrai utilizzare anche il pattern Iniezione di dipendenza, per portare la fabbrica dove è necessario.

    
risposta data 29.07.2016 - 09:40
fonte

Leggi altre domande sui tag