读取单例类中的大型xml文件的最佳方法是什么

时间:2016-06-07 03:19:23

标签: java design-patterns constructor singleton

我有一个单例类,它从xml文件中读取一些属性,这些文件具有相当多的元素。目前,我正在读取单例类的构造函数中的xml文件。一旦读取了xml中的条目,我就可以从单例实例中访问那些条目而无需一次又一次地读取xml。我想知道这是否是一种正确的方法,还是有更好的方法来完成它。

1 个答案:

答案 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)
        }
    }
}