我有一个单例类,它从xml文件中读取一些属性,这些文件具有相当多的元素。目前,我正在读取单例类的构造函数中的xml文件。一旦读取了xml中的条目,我就可以从单例实例中访问那些条目而无需一次又一次地读取xml。我想知道这是否是一种正确的方法,还是有更好的方法来完成它。
答案 0 :(得分:2)
如果你想懒惰地加载属性,那么你可以编写如下的类,它也可以在多线程环境中工作。
class Singleton {
private static Singleton instance;
private Properties xmlProperties;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
synchronized(Singleton.class) {
if(instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
public Properties getXmlProperties() {
if(xmlProperties == null) {
initProperties();
}
return xmlProperties;
}
private synchronized void initProperties() {
if(xmlProperties == null) {
//Initialize the properties from Xml properties file
// xmlProperties = (Properties from XML file)
}
}
}