我有两种选择:
第一:采用Singleton设计模式
public class A{
private static A instance;
private A(){};
public A getDefault(){
if(instance == null)
instance = new A();
return instance;
}
//cst
public static final String cst = "sample";
}
这样,我们可以通过
cst
访问A.getDefault().cst
第二:参考课堂
public class B{
public static final String cst = "sample";
}
这样,我们就可以通过
cst
轻松访问B.cst
。考虑性能的最佳方法是什么(对我而言,常数已编号并具有图像类型)?
最佳答案
第二种选择(普通的公共最终静态字段)更简单,而且更有可能更有效率。
如果您发现自己需要一个更灵活的解决方案,我建议您创建一个枚举来保留您的价值观。
public enum MyConstants {
CST1(new Image("someImage.jpg")),
CST2(new Image("someOtherImage.jpg"));
public final Image img;
private MyConstants(Image img) {
this.img = img;
}
}
请注意,静态字段和枚举解决方案都可以与静态导入配合使用:
import static pkg.B.cst; // usage: cst
要么
import static pkg.MyConstants.*; // usage: CST1 or CST2