Devo rendere costante i valori di tre scelte (trivalente / ternario)?

0

Per due scelte c'è il booleano. Nel mio caso, ho positivo, negativo e neutro che sono tre scelte e non possono essere rappresentati da booleano. Ho visto che esiste il metodo Math.signum(x) in Java che restituisce -1, 0 o 1. Quindi, dovrei seguire questa pratica (usa semplicemente -1, 0, 1 senza creare costanti) o creare costanti?

int type = -1;
// vs
int type = Type.NEGATIVE;
    
posta fikr4n 02.03.2018 - 12:18
fonte

1 risposta

7

Ogni volta che hai a che fare con la possibilità di rendere il tuo codice più facile da leggere senza aspetti negativi, dovresti farlo.

Le enumerazioni Java offrono la possibilità di gestire valori specifici con nomi leggibili. In termini di efficienza, l'uso delle enumerazioni è paragonabile all'utilizzo di interi. In termini di leggibilità, la rappresentazione è chiara e inequivocabile attraverso l'uso di un'etichetta.

enum Option {
    OFF,
    ON,
    DEFAULT
}

Quindi il tuo codice, piuttosto che avere:

if (opt == 2) {
    // Default option
}

Puoi ottenere:

if (opt == Option.DEFAULT) {
    // Default option
}

Nel tuo caso, avresti:

enum SignValue {
    NEGATIVE,
    NEUTRAL,
    POSITIVE
}
    
risposta data 02.03.2018 - 14:15
fonte

Leggi altre domande sui tag