Refactor multiplo se test [chiuso]

-3

Ho un costruttore di classi che deve eseguire un paio di controlli. Sta controllando un file per il verificarsi di alcuni tag. Uso una funzione che controlla i tag e restituisce un valore booleano a seconda che il tag sia stato trovato. Se il tag non è stato trovato, chiama return , interrompe l'esecuzione del costruttore e imposta il flag alive su false . Non posso lanciare un'eccezione in questo caso.

Al momento il codice è simile a questo:

if (!tagExists(tag1))
    print(tag1 + " failed")
    alive = false
    return
if (!tagExists(tag2))
    print(tag1 + " failed")
    alive = false
    return

E questo continua per la quantità di tag che c'è. Quale sarebbe il modo migliore per refactoring questo? Come ho detto, non posso usare le eccezioni.

    
posta Joe 12.02.2017 - 23:05
fonte

1 risposta

1

Sembra che il modo naturale sarebbe scrivere un ciclo. Potresti avere una serie di tag e fare qualcosa del genere:

const Tag_t tags[NUM_TAGS] = { tag1, tag2, tag3 ... };
for (int i = 0; i < NUM_TAGS; ++i)
{
    if (!tagExists(tags [ i ]))
    {
        print(tags [ i ] + " failed");
        alive = false;
        return;
    }
}
    
risposta data 13.02.2017 - 06:59
fonte

Leggi altre domande sui tag