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