使用Interface声明常量或类

时间:2014-02-03 02:58:25

标签: java android

我使用Interface来声明Constants,因为它们是public static final。很多次我看到人们用公共静态最终常量变量编写一个类,有时候我也做了同样的事情。哪一个是更好的实践,接口或使用类?

public class MyCodeConstants {
    public static final String VALUE_1 = "VALUE1";
    public static final String VALUE_2= "VALUE2";
}

public interface MyCodeConstants {
    public static final String VALUE_1 = "VALUE1";
    public static final String VALUE_2= "VALUE2";
}

哪一个是更好的使用方法,为什么?

2 个答案:

答案 0 :(得分:1)

首先,只有当常量需要成为公共API的一部分时,才应该指定常量,并且应该始终考虑枚举是否更有意义。

但是,如果拥有公共常量(Android的意图名称,HTTP状态代码)确实有意义,那么它们应该继续它们所属的类型。在HTTP状态代码的情况下,它们与HttpServletResponse最密切相关,这是一个接口,所以他们去那里。如果常量与一个类相关联(并且它不是一个更好的设计来将接口拉出该类),那么它们应该去那里。

答案 1 :(得分:1)

在设计方面都很糟糕。类应该在您的软件中有方法,以尊重类的定义和封装原则。接口用于表示类的类似行为,不应用于存储常量。但是,一个好的解决方案是创建一个名为Value的新类。您可以在此处找到更多详细信息:

Should a collection of constants be placed in a class or interface?