File di costanti Java

Sto sviluppando un’applicazione Android e sono molto nuovo su Java e Android.

Voglio creare delle costanti da utilizzare in alcune attività. Dove posso definire queste costanti?

Grazie.

È considerato una ctriggers pratica in Java e nella maggior parte dei linguaggi OO, per definire una class semplicemente per contenere le costanti. È molto meglio definire le costanti in una class a cui sono associate. Di solito ce n’è uno. per esempio

interface MyComponent { /** The default height for a component */ public static final int DEFAULT_HEIGHT = 5; // other stuff } 

Se non c’è davvero nessuno si sente libero di definire una class separata.

EDIT: Le cose fondamentali qui sono:

  1. Rendi le costanti facili da trovare. Se c’è un luogo ‘naturale’ per metterli, mettili lì (cioè l’altezza predefinita per gli oggetti Component appartiene alla class Component).
  2. Non avere un accoppiamento più alto del necessario. Mettere tutte le tue costanti in una class ‘Costanti’ rende l’accoppiamento elevato, specialmente se i modificatori successivi tendono a mettere TUTTE le costanti nella class delle costanti, indipendentemente dal fatto che ci sia o meno un’altra class in cui potrebbero essere inserite.
  3. Solo perché una costante è usata da più di una class che non significa che dovrebbe essere in una class ‘Costanti’. Se una costante viene utilizzata da “Applicazione” e le classi che utilizzano la class Applicazione, inserirla nella class Applicazione. In questo modo non stai aumentando l’accoppiamento.

Normalmente, dovresti usare una class Constants, o definirli in classi dove sono usati, a la:

 class Constants { public static final int NUM_TRIANGLES = 4; public static final String SOME_TEXT = "This is a constant"; } 

Allora ti riferiresti a loro da:

 String inst = Constants.SOME_TEXT; 

Il modo più comune è creare ‘ costanti ‘ nelle classi se ti servono:

 class Example { private static final int FILENAME = "test.txt; } 

Invece di privato può anche essere dichiarato predefinito , protetto o pubblico. Sebbene sia considerato un anti-pattern OO per definire le costanti è una speciale class ‘costanti’ ( God ) che memorizza le costanti per l’intera applicazione. In alternativa, è anche ansible memorizzare i dati di configurazione in un file di proprietà Java , questo non è considerato un anti-pattern.

Un’altra opzione, che sta rapidamente guadagnando popolarità, è l’utilizzo del pattern Dipendenza Inject (DI). Spesso questo modello è usato per oggetti dipendenti, ma può anche essere usato per iniettare valori costanti negli oggetti. Ad esempio, questo può essere implementato con il framework Guice DI leggero di Google:

 class Example { String filename; @Inject public Example(@ConfigFilename String filename) { this.filename = filename; } 

In una speciale class Binder si associa un valore alle stringhe annotate con @ConfigFilename. In questo modo, hai un accoppiamento e classi minimi che possono essere testati indipendentemente.

È ansible definire alcune costanti nelle enumerazioni Java.

Un singolo enumeratore Java può contenere più campi di dati associati.

Oracle fornisce questa introduzione alle enumerazioni Java.