Java单例模式
来源:http://www.cnblogs.com/whgw/archive/2011/10/05/2199535.html
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 Map<String, Singleton> map = new HashMap<String, Singleton>(); 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); } }