Valori costanti nell'interfaccia

5

Qualche tempo fa ho letto due libri diversi e ognuno di loro dà una risposta totalmente diversa alla domanda se è un buon modello per definire i valori costanti nell'interfaccia (in java).

Quindi sono curioso delle tue opinioni con alcuni argomenti ragionevoli.

È una buona abitudine / modello definire i valori costanti nelle interfacce in java?

Generalmente è buono, generalmente cattivo o dipende?

    
posta Łukasz Rzeszotarski 08.11.2012 - 10:04
fonte

2 risposte

10

Articolo 19 di Java efficace 2a ed. raccomanda quanto segue:

If the constants are strongly tied to an existing class or interface, you should add them to the class or interface...If the constants are best viewed as members of an enumerated type, you should export them with an enum type. Otherwise, you should export the constants with a noninstantiable utility class.

public class SomeConstants {
    private SomeConstants() { } // Private default constructor

    public static final double WEIRD_NUMBER = 123456.7;
    public static final int ANOTHER_NUMBER = 5;
}

Modifica: come con tutte le cose, esistono delle eccezioni. Questo caso (le costanti e alcuni metodi devono essere condivisi da tipi esterni) potrebbe essere un buon argomento per l'utilizzo di un'interfaccia in questo modo.

    
risposta data 08.11.2012 - 15:48
fonte
1

Uso le costanti in interface per avere gli stessi riferimenti quando i miei programmi hanno parametri interni, su tutto quando le costanti possono cambiare nella prossima versione,
 e io uso enum otherwhere.

Ho anche un interface della costante normale per impostazione predefinita, quelle costanti sono usate se nessun altro parametro di ambiente dato da alcuni myFile.properties le sovrascrive.

L'efficace Java (2008) di Joshua Bloch fornisce molti suggerimenti a riguardo.

    
risposta data 08.11.2012 - 13:43
fonte

Leggi altre domande sui tag