Pracuję nad aplikacją z wieloma stałymi. Podczas ostatniego przeglądu kodu okazało się, że stałe są zbyt rozproszone i wszystkie powinny być zorganizowane w jeden „stały” plik stałych. Nieporozumienie dotyczy sposobu ich organizacji. Większość uważa, że użycie stałej nazwy powinno wystarczyć, ale doprowadzi to do kodu, który wygląda następująco:
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";
Uważam, że tego rodzaju konwencja nazewnictwa jest uciążliwa. Pomyślałem, że łatwiej będzie użyć publicznej klasy zagnieżdżonej i mieć coś takiego:
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";
...
}
}
Pomysł ten nie został dobrze przyjęty, ponieważ był „zbyt skomplikowany” (nie podałem zbyt wielu szczegółów, dlaczego może to być zbyt skomplikowane). Myślę, że tworzy to lepszy podział między grupami stałych pokrewnych, a autouzupełnianie ułatwia również ich znalezienie. Nigdy tego nie widziałem, więc zastanawiam się, czy jest to zaakceptowana praktyka, czy też istnieją lepsze powody, dla których nie należy tego robić.