餓漢式單例模式:(synchronized 同步)
public class Single{
private static Single single =new Single();
private Single(){}
public static Single getSingle(){
return single;
}
}
懶漢式單例設計模式:
public class Single{
private static Single single = null;
private Single(){}
synchronized public static Single getSingle(){
if(single==null){
single = new Single();
}
return single;
}
}
餓漢式 單例模式適應於java而不適用與C++,因爲靜態初始化在C++中沒有順序。因而變量single 的初始化與對應類Single的加載沒有保證。可能會出問題。但從時間和速度上分析,餓漢式更快,但性能不是很好,因爲餓漢式在自己被加載時已經實例化了。
登記式單例模式(可以實現單例的繼承)