Sto lavorando ad un'applicazione con molte costanti. All'ultima revisione del codice è emerso che le costanti sono troppo sparse e dovrebbero essere organizzate in un unico file di costanti "master". Il disaccordo riguarda il modo in cui organizzarli. La maggior parte ritiene che l'uso del nome costante dovrebbe essere abbastanza buono, ma questo 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 di denominazione sia ingombrante. Ho pensato che potrebbe essere più facile 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 ben accolta perché era "troppo complicata" (non ho avuto molti dettagli sul perché questo potrebbe essere troppo complicato). Penso che questo crei una migliore divisione tra gruppi di costanti correlate e il completamento automatico facilita anche la ricerca di questi. Non l'ho mai visto fatto, quindi mi chiedo se questa è una pratica accettata o se ci sono ragioni migliori per cui non dovrebbe essere fatto.