2

创建一个名为“Constants.java”的类,并声明整个程序正在使用的所有魔术常量,还是将所有内容放在名为 ScreenMessage.properties 的属性文件中更实用?Constants.java 和属性文件中返回的值将用于从数据库中查找特定消息。

例子:

在常量.java 中:

public static final String UNSUCCESSFUL_LOGIN = "MSGID001";

在 ScreenMessage.properties 中:

UNSUCCESSFUL_LOGIN=MSGID001

[添加:2013-May-18]: 实际上,这个问题的本质是:如果我将魔术常量放在 Constants.java 中,我可以通过简单的“Constants.UNSUCCESSFUL_LOGIN”来检索常量的值,但是如果我使用属性文件,由于属性文件的文件名,我在程序中再次嵌入了另一个常量,如果属性文件不在同一个包中,则比将加载属性文件值的类更难。

4

3 回答 3

3

这取决于你的需要。

优点和缺点:

如果您有一些 Constants.java,则可以访问常量的类型,而属性文件则不然。

另一方面,可以更改属性文件而无需重新编译...

在这里,您似乎需要一些 ID 才能从数据库中检索一些消息。这些消息与您的应用程序的用例(每条消息周围的特定代码)密切相关。因此,我认为您应该按照 Juned Ahsan 的建议使用一些枚举。它们将更容易在您的代码中引用,并且您将避免拼写错误。

于 2013-05-18T07:32:56.470 回答
2

最佳做法是没有Constants.java.

将常量放在它们相关的位置附近,就像在和类MAX_VALUE中定义常量的方式一样。IntegerLong

如果您有一些相同“类型”的常量,例如您的消息示例,请enum为它们创建一个。

于 2013-05-18T07:02:12.673 回答
1

我相信枚举是当今定义常量的一个很好且可以接受的选择

http://docs.oracle.com/javase/1.5.0/docs/guide/language/enums.html

于 2013-05-18T07:00:14.000 回答