枚举 VS 类 VS 接口

2022-09-03 14:50:16

我一直在阅读这个网站上很多关于常量用法的帖子。

问:与使用类或接口相比,我什么时候应该对常量使用枚举。

我看到了我想要解决的2个关键情况。

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

例:

  • 常见日志记录字符串
  • 容器引用类似于 WebSphere EAR 中使用的数据库映射引用

2. 特定于对象的常量

例:

  • 员工对象的员工工资率

从我读到的一切来看,这是我认为我所掌握的,也是我正在寻找意见的东西。

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

对于情况 2:设计方法:应用枚举的使用将这些常量表示为对象。

要记住的其他要点:

  • 如果常量字符串属于该类,并且您只需要将字符串值保留在使用它的类中
  • 不要将接口用于情况 1。如上面的链接中提到的常量接口反模式。.

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


答案 1

全局常量实际上应该位于属性文件中,因为它允许每个应用程序单独配置它们而无需修改代码。对于特定于对象的常量,我的一般经验法则与我通常倾向于有多少个元素以及这些元素的相关性。如果它们之间有很大的关系,比如在一副牌中,那么我会去枚举。如果它是用户的默认年龄,那么这将成为最终期限,因为没有目的使其成为枚举,因为它不需要在许多区域被引用。这些只是我对每种处理方式的一些想法。Enumstatic finalSuitsCards


答案 2
  1. 不同项目使用的全局常量
    最好在类中对成员使用。我猜更干净,更容易理解。EnumEnumpublic static final

  2. 特定于对象的常量:。因为,它们只需要在对象的范围内,那么就不需要为此创建新的枚举。public static final members in Class

不错的阅读

更新(修复了断开的链接):

  1. 充分利用 Java 5.0:枚举技巧
  2. 充分利用 Java 5.0:枚举示例

推荐