ฉันกำลังทำงานกับแอปพลิเคชันที่มีค่าคงที่จำนวนมาก ในการตรวจสอบโค้ดครั้งล่าสุดพบว่าค่าคงที่กระจัดกระจายเกินไปและควรจัดเป็นไฟล์ค่าคงที่ "มาสเตอร์" ไฟล์เดียว ความขัดแย้งเกี่ยวกับวิธีการจัดระเบียบพวกเขา คนส่วนใหญ่รู้สึกว่าการใช้ชื่อคงที่ควรจะดีพอ แต่สิ่งนี้จะนำไปสู่โค้ดที่มีลักษณะดังนี้:
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";
...
}
}
ความคิดนี้ไม่ได้รับการตอบรับที่ดีเพราะมัน "ซับซ้อนเกินไป" (ฉันไม่ได้รับรายละเอียดมากนักว่าทำไมสิ่งนี้ถึงซับซ้อนเกินไป) ฉันคิดว่าสิ่งนี้สร้างการแบ่งที่ดีขึ้นระหว่างกลุ่มของค่าคงที่ที่เกี่ยวข้องและการเติมข้อความอัตโนมัติทำให้ง่ายต่อการค้นหาสิ่งเหล่านี้เช่นกัน ฉันไม่เคยเห็นสิ่งนี้ทำมาก่อนดังนั้นฉันจึงสงสัยว่านี่เป็นการฝึกที่ได้รับการยอมรับหรือมีเหตุผลที่ดีกว่าที่ไม่ควรทำ