接下來就說下單例模式了,這個在實際應用還是比較常用的!
首先,單例分為懶漢式和餓漢式:
餓漢式:類加載的時候,建立對象。 是以類加載速度慢, 線程相對安全
懶漢式:類加載的時候,不會建立對象,調用時才會建立對象。是以類加載速度快,線程相對不安全,一般要配合synchronized使用。
廢話少說,下面是餓漢式:public class Single {
//餓漢式:
private static Single single=new Single();
public Single() {
}
public static Single getSingle(){
return single;
}
}
單例模式思路:
單例模式作用:保證了對象的唯一性
- 适用場景:
1.需要生成唯一序列的環境
2.需要頻繁執行個體化然後銷毀的對象。
3.建立對象時耗時過多或者耗資源過多,但又經常用到的對象。
4.友善資源互相通信的環境
懶漢式如下:public class Single2 {
//懶漢式:
private static Single2 single=null;
private Single2(){
}
public static Single2 getSingle(){
if(single==null){
synchronized (Single2.class){
single=new Single2();
}
}
return single;
}
}
最後咱們來談下,單例模式的優缺點:
優點:
缺點:
以上有寫的不對的地方,請及時通知部落客,以做修改!!!!