設計模式 - 單例模式(singleton pattern)
阿新 • • 發佈:2018-12-14
設計模式 - 單例模式(singleton pattern)
餓漢模式
public class Singleton{
private static final Singleton singleton = new Singleton ();
private Singleton () {}
public static Singleton getInstance() {
return singletion;
}
}
以上方式在載入類的過程中比較慢,以下方式可以懶載入
public class Singleton{ private static Singleton singleton; static { singleton = new Singleton(); } private Singleton () {} public static Singleton getInstance() { return singletion; } }
懶漢模式
需要通過雙層空判斷以及鎖來確保執行緒安全與效率並存
public class Singleton { private static Singleton singleton; private Singleton() {} public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } }