Sto lavorando a un'applicazione con molte costanti. All'ultima revisione del codice è emerso che le costanti sono troppo sparse e dovrebbero essere tutte organizzate in un singolo file di costanti "master". Il disaccordo riguarda il modo di organizzarli. La maggioranza ritiene che l'uso del nome costante dovrebbe essere abbastanza buono, ma ciò porterà a un codice simile al seguente:
public static final String CREDITCARD_ACTION_SUBMITDATA = "6767";
public static final String CREDITCARD_UIFIELDID_CARDHOLDER_NAME = "3959854";
public static final String CREDITCARD_UIFIELDID_EXPIRY_MONTH = "3524";
public static final String CREDITCARD_UIFIELDID_ACCOUNT_ID = "3524";
...
public static final String BANKPAYMENT_UIFIELDID_ACCOUNT_ID = "9987";
Trovo che questo tipo di convenzione sui nomi sia ingombrante. Ho pensato che potrebbe essere più semplice usare la classe nidificata pubblica e avere qualcosa del genere:
public class IntegrationSystemConstants
{
public class CreditCard
{
public static final String UI_EXPIRY_MONTH = "3524";
public static final String UI_ACCOUNT_ID = "3524";
...
}
public class BankAccount
{
public static final String UI_ACCOUNT_ID = "9987";
...
}
}
Questa idea non è stata accolta bene perché era "troppo complicata" (non ho avuto molti dettagli su perché potrebbe essere troppo complicato). Penso che questo crei una divisione migliore tra i gruppi di costanti correlate e il completamento automatico renda più facile trovarli. Non ho mai visto questo, però, mi chiedo se questa è una pratica accettata o se ci sono ragioni migliori per non farlo.