我使用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";
}
哪一个是更好的使用方法,为什么?
答案 0 :(得分:1)
首先,只有当常量需要成为公共API的一部分时,才应该指定常量,并且应该始终考虑枚举是否更有意义。
但是,如果拥有公共常量(Android的意图名称,HTTP状态代码)确实有意义,那么它们应该继续它们所属的类型。在HTTP状态代码的情况下,它们与HttpServletResponse
最密切相关,这是一个接口,所以他们去那里。如果常量与一个类相关联(并且它不是一个更好的设计来将接口拉出该类),那么它们应该去那里。
答案 1 :(得分:1)
在设计方面都很糟糕。类应该在您的软件中有方法,以尊重类的定义和封装原则。接口用于表示类的类似行为,不应用于存储常量。但是,一个好的解决方案是创建一个名为Value的新类。您可以在此处找到更多详细信息:
Should a collection of constants be placed in a class or interface?