Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回(garbage collection)。
实现的两种方式:
饿汉式
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}
懒汉式
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
if(instance==null)
instance=new Singleton();
return instance;
}
}
单例实现读取xml的小测试:
package hbinjie.emp.util;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class XMLUtil {
private static Document xmlDocument;
private XMLUtil(){
}
public static Document getXMLDocument(){
if(xmlDocument!=null){
return xmlDocument;
}
SAXReader reader=new SAXReader();
try {
xmlDocument=reader.read(XMLUtil.class.getClassLoader().getResourceAsStream("xml/users.xml"));
return xmlDocument;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}