天天看點

單例模式的簡單實作與兩種實作方法的比較(餓漢式和懶漢式)(一)

單例模式的簡單實作與兩種實作方法(餓漢式和懶漢式):

單例模式的簡單實作與兩種實作方法的比較(餓漢式和懶漢式)(一)

以上是第一種實作方法,被稱為餓漢式,在被通路前就被初始化了該類對象,也就是說在Single類一進記憶體,就已經建立了對象

第二種實作方法:

如果第一種實作方法是先初始化後被通路,那麼第二種就是先被通路後初始化,即對象是方法被調用時,才初始化,也叫對象的延時加載,稱為:懶漢式。也就是說Single類進記憶體時,對象還沒有存在,隻有調用可傳回對象的方法getInstance()時,才建立對象。

實作代碼如下:

單例模式的簡單實作與兩種實作方法的比較(餓漢式和懶漢式)(一)

那麼究竟在使用單例模式時使用那種較為友善且又安全呢?詳細情況請看下一篇日志:

單例模式的簡單實作與兩種實作方法的比較(餓漢式和懶漢式)(二)