来源:
Java中单利模式有三种: 懒汉式、饿汉式、登记试
饿汉式:
public class Singleton { private Singleton() {} private static Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; }}
懒汉式:
public class Singleton { private Singleton() {} private static Singleton instance = null; public synchronized static Singleton getInstance() { if(instance == null) { instance = getInstance(); } return instance; }}
登记式:
import java.util.HashMap;import java.util.Map;public class Singleton { private static Mapmap = new HashMap (); static { Singleton single = new Singleton(); map.put(single.getClass().getName(), single); } protected Singleton() {} public static Singleton getInstance(String name) { if(name == null) { name = Singleton.class.getName(); } if(map.get(name) == null) { try { map.put(name, (Singleton)Class.forName(name).newInstance()); } catch(Exception e) { e.printStackTrace(); } } return map.get(name); }}