單例餓漢式與懶漢式的區別

2021-05-28 09:08:36 字數 635 閱讀 1648

餓漢式:

public class singleton

public static singleton getinstance()

}  懶漢式:

public class singleton

return singleton;

}}  

比較:餓漢式是執行緒安全的,在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不在改變

懶漢式如果在建立例項物件時不加上synchronized則會導致對物件的訪問不是執行緒安全的

推薦使用第一種 

還有一種方式是靜態內部類:如果對資源使用十分在意可考慮使用

public class s4    

private static class s4holder

public static s4 getinstance()

}

最新的方式生成單例,使用jdk1.5的新特性,並能防止通過反射的方式生成多個物件

/** 

* 列舉實現的singleton

* * */

enum testsingleton

}

餓漢式與懶漢式單例模式的區別

所謂 懶漢式 與 餓漢式 的區別,是在與建立單例物件的時間的不同。懶漢式 是在你真正用到的時候才去建這個單例物件 比如 有個單例物件 public class singleton private static singleton singleton null 不建立物件 public static ...

單例模式 懶漢式與餓漢式

什麼是單例設計模式 保證這個類的物件永遠有且只有乙個。單例設計模式有兩種 見如下兩種宣告方式 1.懶漢式 設計單例模式 懶漢式 先建立乙個私有的靜態物件 private static user user 建立乙個私有的構造方法 private user 建立乙個公有的靜態的返回物件的方法,需要判斷 ...

單例模式 懶漢式與餓漢式

1 簡述 單例模式 singleton pattern 是一種常用的設計模式,它屬於建立者模式。單例模式只允許有乙個例項,通過建構函式私有化的方式隱藏物件建立入口,取而代之的是提供公共介面用於獲取類的單例。其應用場景廣泛,例如建立管理類 只需要乙個管理實體 或者應用於物件需要限定唯一性的場景等。注意...