Estoy trabajando en una aplicación con muchas constantes. En la última revisión de código, se descubrió que las constantes están demasiado dispersas y que todas deberían organizarse en un único archivo de constantes "maestro". El desacuerdo se trata de cómo organizarlos. La mayoría siente que usar el nombre constante debería ser lo suficientemente bueno, pero esto conducirá a un código similar al siguiente:
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";
Encuentro que este tipo de convención de nombres es engorroso. Pensé que podría ser más fácil usar una clase anidada pública y tener algo como esto:
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";
...
}
}
Esta idea no fue bien recibida porque era "demasiado complicada" (no obtuve muchos detalles de por qué esto podría ser demasiado complicado). Creo que esto crea una mejor división entre grupos de constantes relacionadas y el autocompletado también hace que sea más fácil encontrarlos. Sin embargo, nunca he visto esto, así que me pregunto si esta es una práctica aceptada o si hay mejores razones por las que no debería hacerse.