我想知道什么是最有可能使用的,是interface Constants
还是class Constants
?
我的代码有interface
,如下所示:
public interface IConstantsVariableSupport {
public String URL = "www.sample-me.com";
public Integer LIMIT = 50;
}
此interface
将支持所有需要其属性常量的class
。而且我认为我可以在class
中使用常量来执行此操作:
public class ConstantsVariableSupport {
public final static String URL = "www.sample-me.com";
public final static Integer LIMIT = 50;
}
所以我的问题是,当我们使用constants
来支持其他类时,我会考虑采用什么方法。是使用interface
还是class
?或者,如果可能,您是否可以建议最佳实践来处理整个程序中易于使用的常量值。仅供参考我知道如何使用这两种方法,我只是想知道如何正确使用它。
答案 0 :(得分:3)
首先,永远不要创建单个类或接口来转储所有常量。我知道它很诱人但是在1或2年后,这个常量文件将变得非常混乱和不可读。相反,如果变量与类具有非常紧密的关系,则最好将常量变量放在该类中。以下是 Joshua Bloch 的建议:
如果常量与现有类或接口紧密相关,则应将它们添加到类或接口。例如,所有带框的数字基本类(如Integer和Double)都会导出MIN_VALUE和MAX_VALUE常量。如果常量最好被视为枚举类型的成员,则应使用枚举类型导出它们。否则,您应该使用不可实例化的实用程序类导出常量。
答案 1 :(得分:0)
我总是喜欢选项#2 - 将常量放在一个类中。选项#1可以为您节省一些输入,因为您不需要明确指出您的类变量是public static final
(暗示)。但是,请考虑一个界面实际上是什么 - it defines how you would interact with an object。因此,它的目的是关注行为。