类中的静态final字段与java中的Interface字段

Gee*_*eek 0 java oop design-patterns

我需要在我的应用程序中创建100个或更多静态最终常量,我可以按照我的理解实现这两种方式:

  1. 在其中创建一个简单的java class并创建static final字段
  2. 创建一个接口,将所有变量放入其中,因为接口中的所有字段都是隐式的 static final

我在上面的方法中有这些问题:

  1. 哪一个是正确的方法来实现这一目标?
  2. 哪一个是内存有效的方法?
  3. 有没有设计模式来实现这一目标?

ΦXo*_*a ツ 5

您可以参考很多关于该主题的书籍.

我会引用一个好的:"有效的Java"

第19项:仅使用接口来定义类型

常量接口模式是接口的不良使用.类在内部使用一些常量是一个实现细节.实现常量接口会导致此实现细节泄漏到类的导出API中.类的用户实现一个常量接口并不重要

你甚至可以检查JDK主要是常量声明的位置.

Math.PI 例如,在Math类中声明,而不是在接口中声明

作为一个例外,您可以看到java.io.ObjectStreamConstants中的常量,但同时书籍可以帮助:

从有效的java再次:

Java平台库中有几个常量接口......

这些接口应视为异常,不应模拟.