Я работаю над приложением со многими константами. При последнем обзоре кода выяснилось, что константы слишком разбросаны и должны быть все организованы в один «главный» файл констант. Разногласия о том, как их организовать. Большинство считает, что использование константного имени должно быть достаточно хорошим, но это приведет к коду, который выглядит следующим образом:
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";
Я считаю такой тип именования громоздким. Я подумал, что может быть проще использовать публичный вложенный класс и получить что-то вроде этого:
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";
...
}
}
Эта идея не была хорошо принята, потому что она была «слишком сложной» (я не получил много подробностей о том, почему это может быть слишком сложно). Я думаю, что это создает лучшее разделение между группами связанных констант, а автозаполнение облегчает их поиск. Хотя я никогда не видел, чтобы это было сделано, поэтому мне интересно, является ли это общепринятой практикой или есть более веские причины, по которым этого не следует делать.