懶漢單例餓漢單例

2021-09-19 18:58:26 字數 871 閱讀 1493

設計模式:單例

設計模式:23個設計模式

建立型行為型

結構型架構模式:

戰略      

單例/單態:如何能保證乙個類只出乙個物件?     

懶漢式:

缺點:訪問速度慢

優點:使用才載入物件          

synchronized 同步可以解決懶漢式問題

餓漢式:

優點:訪問速度快

缺點:提前載入

下面說一下懶漢式和餓漢式的區別及優點:

餓漢式不管有沒有呼叫物件建立方法,都會預先在系統中建立乙個靜態物件

懶漢式不會預先建立物件,只有在第一次呼叫時才建立物件

餓漢式優點: 在多執行緒模式下是安全的

缺點: 沒有呼叫方法前就被載入,會占用記憶體

懶漢式優點:只有呼叫方法才建立物件,不會占用記憶體

缺點:在多執行緒模式下不安全

public class hello 

//靜態成員只有乙份 載入本類物件 也只有乙個

private static hello hello = new hello();//靜態只可能有乙份

//此方法是返回本類唯一物件

public static hello gethello()

}

public class sayhello 

private static sayhello sayhello;//宣告物件

public static synchronized sayhello getsayhello()

return sayhello;//如果不為空直接返回物件

}}

餓漢單例與懶漢單例

餓漢單例 執行緒安全 public class mon public static mon getinstance public static mon getinstance if instance null 此時還沒有例項化 instance new mon return instance pub...

單例(懶漢式單例 餓漢式單例)

public class singleton private static singleton instance new singleton public static singleton getinstance public class singleton public static synchr...

懶漢餓漢單例模式

懶漢式單例類,在第一次呼叫時的時候例項化自己 public class singleton private static singleton single null 靜態工廠方法 public static singleton getinstance return single 執行緒安全的懶漢式單...