枚举VS类VS接口

haj*_*aju 15 java enums constants

我一直在阅读本网站上有关常量用法的大量帖子.

问题:我应该何时使用枚举作为常量,使用类或接口.

我看到了我想要解决的两个关键情况.

1.多个项目在应用程序中使用的全局常量.

例:

  • 常见的日志字符串
  • 容器引用,如WebSphere EAR中使用的数据库映射引用

2.对象特定常量

例:

  • 员工对象的员工工资率

从我所读到的一切来看,这就是我认为我掌握的内容以及我正在寻找的意见.

对于情况1:设计方法:使用最终类和静态导入.
在这里看到:接口常量的用途是什么?

对于情况2:设计方法:应用Enums来表示这些常量作为对象.

要记住的其他要点:

  • 如果常量字符串属于该类,并且您只需要在使用它的类中保留字符串值
  • 不要在情况​​1中使用接口.如上面链接中提到的Constant Interface Anti-pattern..

提前感谢您的想法和意见.

Woo*_*Moo 12

您放置的全局常量应该实际上位于属性文件中,因为它允许每个应用程序单独配置它们而无需修改代码.对于对象专用常量我的拇指一般规则Enumstatic final对多少个元素有我通常瘦到有,以及如何与这些元素.如果它们之间存在很大的关系,比如Suits在甲板上Cards那么我会选择枚举.如果它是用户的默认年龄,那么这将成为最终版本,因为没有任何目的使其成为枚举,因为它不需要在许多领域中被引用.这些只是我接触它的每种方式的一些想法.