msa*_*a25 -1 java interface class constants
我想知道最有可能使用什么,是interface Constants
还是class Constants
?
我有一个interface
类似这样的代码:
public interface IConstantsVariableSupport {
public String URL = "www.sample-me.com";
public Integer LIMIT = 50;
}
Run Code Online (Sandbox Code Playgroud)
这interface
将支持所有class
需要其属性常量的内容。我认为我可以在其中class
包含常量的情况下做到这一点,如下所示:
public class ConstantsVariableSupport {
public final static String URL = "www.sample-me.com";
public final static Integer LIMIT = 50;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,当我用他们所拥有的支持其他类时,我会考虑什么方法constants
。它是使用interface
还是a class
?或者,如果可能的话,您能否建议一种最佳实践来处理常量值,以便于在整个程序中使用。仅供参考,我知道如何使用这两种方法,我只是想知道如何正确执行。
首先,永远不要创建一个类或接口来转储所有常量。我知道这很诱人,但一两年后,该常量文件将变得非常混乱且难以读取。相反,如果一个变量与某个类有非常密切的关系,那么最好将常量变量放在该类中。以下是约书亚·布洛赫的建议:
如果常量与现有类或接口紧密相关,则应将它们添加到该类或接口中。例如,所有装箱数字基元类(例如 Integer 和 Double)都导出 MIN_VALUE 和 MAX_VALUE 常量。如果最好将常量视为枚举类型的成员,则应使用枚举类型导出它们。否则,您应该使用不可实例化的实用程序类导出常量。