当前位置: 首页 > 面试题库 >

枚举VS类VS接口

周鸿云
2023-03-14
问题内容

我在该站点上阅读了很多有关常量用法的文章。

问题:什么时候应该使用Enums作为常量,而不是使用类或接口。

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

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

例:

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

2.对象特定常量

例:

  • 员工对象的员工工资率

从我阅读的所有内容中,我认为我已经掌握了这些内容,并且正在寻找自己的看法。

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

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

要记住的其他要点:

  • 如果常量字符串属于该类,而您只需要将字符串值保留在使用它的类中
  • 请勿在情况1下使用接口。如上面链接中所述,为“常量接口反模式”。。

预先感谢您的想法和意见。


问题答案:

您所输入的全局常量实际上应该在属性文件中,因为它允许每个应用程序单独配置它们而无需修改代码。对于特定于对象的常量,我通常Enumstatic final我的经验法则通常倾向于拥有多少个元素以及这些元素之间的关联程度。如果它们之间有很大的关系,例如Suits在一副纸牌中,Cards那么我会去列举。如果它是用户的默认年龄,则这将是最终的决定,因为没有必要将其设为枚举,因为在许多领域都不需要引用该枚举。这些只是对我所采用的每种方式的一些想法。



 类似资料:
  • 问题内容: 可以使用以下任一方法在JPA中定义枚举 要么 我想知道这两个定义的优缺点是什么? 我听说ORDINAL的性能比EclipseLink的STRING更好(更快)。 真的吗? 问题答案: 我总是去。 速度很少是最重要的问题-可读性和可维护性 更为 重要。 我使用它是因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需接触数据库,无法处理: 我可以更改枚举的 顺序 我可以

  • 由于Java9将允许我们在接口中也定义和方法,那么和中剩下的区别是什么呢?而且,Java走向多重继承的步伐是不是很慢?

  • 问题内容: 套接字编程,rmi和Servlet之间有什么区别。什么时候使用什么? 问题答案: 套接字API是Java应用程序与网络交互以及与远程客户端和服务进行扩展的低级(传输级)抽象。套接字和相关的API支持可靠的字节流和不可靠的消息传递服务。它们通常用于TCP / IP和UDP / IP,尽管可以(至少在理论上)支持其他网络协议栈。 RMI是用于在Java应用程序之间实现应用程序级网络的框架和

  • 当您需要定义错误码和错误信息时,可能会使用以下方式, <?php class ErrorCode { const SERVER_ERROR = 500; const PARAMS_INVALID = 1000; public static $messages = [ self::SERVER_ERROR => 'Server Error',

  • 问题内容: 我已经阅读了该问题和答案: 在Java中实现常量的最佳方法是什么? 并提出了一个决定,即枚举是实现一组常量的更好方法。另外,我在Sun网站上阅读了一个如何将行为添加到枚举的示例(请参见前面提到的文章中的链接)。因此,将带有String键的构造函数添加到枚举中以容纳一堆String值没有问题。 这里的唯一问题是,我们需要添加“ .nameOfProperty”来访问String值。因此,

  • 创建指令时,可以将代码放入编译器、链接函数或控制器中。 在文件中,他们解释说: 编译和链接功能用于角度循环的不同阶段 然而,对我来说还不清楚,哪种代码应该去哪里。 例如:我可以在compile中创建函数并将它们附加到link中的作用域,还是只将函数附加到controller中的作用域? 如何在指令之间共享控制器,如果每个指令可以有自己的控制器?控制器是真的共享,还是只是范围属性?