IMO ที่ใช้คลาสที่เต็มไปด้วยค่าคงที่ก็ใช้ได้สำหรับค่าคงที่ หากพวกเขาจะเปลี่ยนกึ่งบางครั้งฉันขอแนะนำให้ใช้ AppSettings ใน config ของคุณและคลาส ConfigurationManager แทน
เมื่อฉันมี "ค่าคงที่" ที่ดึงเข้ามาจาก AppSettings หรือสิ่งที่คล้ายกันฉันจะยังคงมีคลาส "ค่าคงที่" ที่ตัดการอ่านจากตัวจัดการการกำหนดค่า มีความหมายมากกว่าที่จะมีConstants.SomeModule.Setting
แทนที่จะต้องหันไปหาConfigurationManager.AppSettings["SomeModule/Setting"]
สถานที่ใด ๆ ที่ต้องการใช้ค่าการตั้งค่าดังกล่าวโดยตรง
คะแนนโบนัสสำหรับการตั้งค่านี้เนื่องจากSomeModule
น่าจะเป็นคลาสที่ซ้อนกันภายในไฟล์ Constants คุณจึงสามารถใช้ Dependency Injection เพื่อฉีดSomeModule
ลงในคลาสที่ขึ้นอยู่ได้โดยตรง คุณยังสามารถแยกอินเทอร์เฟซที่ด้านบนจากSomeModule
นั้นสร้างการอ้างอิงISomeModuleConfiguration
ในโค้ดที่ใช้งานของคุณซึ่งจะช่วยให้คุณสามารถแยกการอ้างอิงกับไฟล์ค่าคงที่และอาจทำให้การทดสอบง่ายขึ้นโดยเฉพาะอย่างยิ่งหากการตั้งค่าเหล่านี้มาจาก AppSettings และ คุณเปลี่ยนโดยใช้การแปลงการกำหนดค่าเนื่องจากการตั้งค่าเป็นสภาพแวดล้อมเฉพาะ