簡介:
單例模式,是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱爲單例的特殊類。通過單例模式可以保證系統中,應用該模式的類一個類只有一個實例。即一個類只有一個對象實例。
一、餓漢式
private static final CEO ceo=new CEO();
private CEO(){
}
public static CEO getCeo(){
return ceo;
}
二、懶漢式
/**
* 懶漢CEO,方法是加鎖的,所以耗時比較嚴重
*/
public class LHCEO {
private static LHCEO instance;
private LHCEO(){
}
public static synchronized LHCEO getInstance(){
if (instance==null){
instance=new LHCEO();
}
return instance;
}
}
三、DCL實現單例
private static LASTCEO instance=null;
private LASTCEO(){
}
public static LASTCEO getInstance(){
if (instance==null){
synchronized (LASTCEO.class) {
if (instance==null)
instance = new LASTCEO();
}
}
return instance;
}
三、優缺點比較
懶漢式的比餓漢式的實例線程安全,但是效率低,而DCL實現方式則是2種方式的結合,第一次創建的時候回比較慢,後期利用效率高。