假设有一个简单的类:Java的singleton对象多语言数据实现
public class SingletonClass {
private static SingletonClass singObj;
private string variable1;
private string variable2;
.....
public static synchronized SingletonClass getInstance() {
if (singObj == null) {
singObj = new SingletonClass();
}
return singObj;
}
}
如果有大量的字符串变量,他们需要被存储在多个语言,什么是在Java的管理这个标准的方法?
目前我使用:
public class SingletonClass {
private static SingletonClass singObj_LANG1;
private static SingletonClass singObj_LANG2;
private static SingletonClass singObj_LANG3;
private string variable1;
private string variable2;
.....
public static synchronized SingletonClass getInstance(String lang) {
if (lang.equals("English")) {
if (singObj_LANG1 == null) {
singObj_LANG1 = new SingletonClass();
}
return singObj_LANG1;
}else if (lang.equals("Chinese")) {
if (singObj_LANG2 == null) {
singObj_LANG2 = new SingletonClass();
}
return singObj_LANG2;
}else{
if (singObj_LANG3 == null) {
singObj_LANG3 = new SingletonClass();
}
return singObj_LANG3;
}
}
}
我认为这是一个不好的做法,没有更好的实现?
看来值需要在被初始化开始? – user1345817
您可以随时在属性文件中写入值,而不仅仅是在正在运行的应用程序中。资源包只需指向这些文件,但它们需要使用语言环境或默认值进行初始化。资源包对象的范围取决于您的需要以及您如何设置它。 –