Đề xuất của tôi (theo thứ tự ưu tiên giảm dần):
1) Đừng làm điều đó . Tạo các hằng số trong lớp thực tế mà chúng có liên quan nhất. Việc có một lớp / giao diện 'túi hằng số' không thực sự tuân theo các phương pháp hay nhất của OO.
Tôi và tất cả những người khác, thỉnh thoảng bỏ qua # 1. Nếu bạn định làm điều đó thì:
2) lớp cuối cùng với phương thức khởi tạo riêng Điều này ít nhất sẽ ngăn bất kỳ ai lạm dụng 'túi hằng số' của bạn bằng cách mở rộng / triển khai nó để dễ dàng truy cập vào các hằng số. (Tôi biết bạn đã nói rằng bạn sẽ không làm điều này - nhưng điều đó không có nghĩa là ai đó sẽ đi cùng sau khi bạn không làm thế)
3) giao diện Điều này sẽ hoạt động, nhưng không phải sở thích của tôi đưa ra đề cập lạm dụng có thể xảy ra trong # 2.
Nói chung, chỉ vì đây là các hằng số không có nghĩa là bạn vẫn không nên áp dụng các nguyên tắc bình thường cho chúng. Nếu không có ai ngoại trừ một lớp quan tâm đến một hằng số - thì nó phải là hằng số và nằm trong lớp đó. Nếu chỉ các bài kiểm tra quan tâm đến một hằng số - thì nó phải nằm trong một lớp kiểm tra, không phải mã sản xuất. Nếu một hằng số được xác định ở nhiều nơi (không chỉ vô tình giống nhau) - hãy cấu trúc lại để loại bỏ sự trùng lặp. Và cứ thế - hãy đối xử với họ như cách bạn làm.