创建名为say,“Constants.java”的类是否更实际,并声明整个程序正在使用的所有魔术常量,或者将所有内容放在名为ScreenMessage.properties的属性文件中? Constants.java和Properties文件返回的值将用于从数据库中查找特定消息。
示例:
在Constants.java中:
public static final String UNSUCCESSFUL_LOGIN = "MSGID001";
在ScreenMessage.properties中:
UNSUCCESSFUL_LOGIN=MSGID001
[已添加:2013年5月18日]: 实际上,这个问题的本质是:如果我把Magic Constants放在Constants.java中,我可以通过简单的“Constants.UNSUCCESSFUL_LOGIN”来检索常量的值,但是如果我使用属性文件,我会在程序中再次嵌入另一个常量由于属性文件的文件名,如果属性文件与将加载属性文件的值的类不在同一个包中,则更难。
答案 0 :(得分:3)
这取决于您的需要。
利弊:
如果你有一些Constants.java,你可以访问常量的类型,而属性文件不是这种情况。
另一方面,可以更改属性文件而无需重新编译...
在这里,您似乎需要一些ID来从数据库中检索一些消息。这些消息与应用程序的用例(每条消息的特定代码)密切相关。因此,我认为你应该使用Juned Ahsan建议的一些枚举。它们将更容易在您的代码中引用,您将避免拼写错误。
答案 1 :(得分:2)
的最佳做法是拥有Constants.java
。
将常量放在它们相关的位置附近,例如在MAX_VALUE
和Integer
类中定义Long
常量的方式。
如果您有一些相同“类型”的常量,例如您的消息示例,请为它们创建enum
。
答案 2 :(得分:1)
我认为现在定义常量是一个很好的和可接受的选择来定义常量
http://docs.oracle.com/javase/1.5.0/docs/guide/language/enums.html