Dav*_*ton 34 java standards coding-style
如果我有一组静态常量,我想集中声明这些静态常量,以便它们可以在各种项目中共享,如果它们放在类或接口(Java)中.
在过去,我已经看到它们主要放在一个类中,但我开始认为,因为类不会也不应该被实例化,也许它们在接口中会更好,但是接口不应该被任何类实现,例如
public class ErrorCodes {
public static final String ERROR_1 = "-1";
public static final String ERROR_2 = "-2";
}
Run Code Online (Sandbox Code Playgroud)
要么
public interface ErrorCodes {
public static final String ERROR_1 = "-1";
public static final String ERROR_2 = "-2";
}
Run Code Online (Sandbox Code Playgroud)
Joa*_*uer 32
如果他们有很强的联系,那么我会把它们放在枚举中:
public enum Error {
ERROR_1("-1", "foo went wrong"),
ERROR_2("-2", "bar went wrong");
private final String id;
private final String message;
Error(String id, String message) {
this.id=id;
this.message=message;
}
public String getId() {
return id;
}
public String getMessage() {
return message;
}
}
Run Code Online (Sandbox Code Playgroud)
优点是您可以在代码中使用类型安全性,并且可以轻松添加基于id的查找(通过HashMap<String,Error>在构造函数中构建a 或简单地循环values()).
And*_*ich 10
有些人认为常量接口是一种反模式(http://en.wikipedia.org/wiki/Constant_interface).
你应该在课堂上做.
接口是类用户可以访问的可用方法,属性等的描述 - 通过实现接口,您可以保证在接口中声明的成员对用户可用.
另一方面,类是对象的描述或(如果你对OO原则不太苛刻......)静态成员的占位符.我个人发现在一些项目中将一堆常量存储在一个Settings类中是非常有用的,所以我不必在整个项目中查看定义.我认为这种方法也是你所追求的.
| 归档时间: |
|
| 查看次数: |
13617 次 |
| 最近记录: |