23种设计模式学习之单例模式
用内部类来维护单例的实现
public class Singleton {
//私有构造方法,防止被实例化 private Singleton(){}
//用一个内部类来维护单例 private static class SingletonFactory{ private static Singleton singleton=new Singleton(); }
//获取实例 public static Singleton getInstance(){ return SingletonFactory.singleton; } }
使用锁实现单例
public class Singleton { private static Singleton singleton=null; private Singleton(){} private static synchronized void syncInit() { if (singleton == null) { singleton = new Singleton(); } } public static Singleton getInstance(){ if (singleton == null){ syncInit(); } return singleton; } }