了解單例設計模式

2021-10-05 14:22:37 字數 1585 閱讀 5512

餓漢式單例:

singleton類裡面會始終維持乙個instance 的例項化物件,然而並不關心這個物件是否被使用。

package com.gen;

/** * 單例設計類

*/class

singleton

public

static singleton getinstance()

}/**

* 測試類-客戶端

*/public

class

test

}

執行結果:

com.gen.singleton@4554617c

com.gen.singleton@4554617c

以上就實現了乙個最為核心的單例設計模式,不管外部呼叫多少次的getinstance()方法,那麼在整個的系統內部只維持了唯一的乙個singleton類的例項。

懶漢式單例:

第一次使用的時候才會進行例項化,不使用不進行例項化。

package com.gen;

/** * 單例設計類

*/class

singleton

public

static singleton getinstance()

return instance;}}

/** * 測試類-客戶端

*/public

class

test

}

執行結果:

com.gen.singleton@4554617c

com.gen.singleton@4554617c

懶漢式單例改進

上述的**在多執行緒中會有問題,我們可以利用同步和反射做出如下改進:

package com.gen;

/** * 單例設計類

*/class

singleton

public

static singleton getinstance()

}}return instance;}}

/** * 測試類-客戶端

*/public

class

test).

start()

;}}}

執行結果:

物件例項化了

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

com.gen.singleton@616831d4

單例設計模式(餓漢單例設計模式 懶漢單例設計模式)

1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...

了解23種設計模式之單例模式

一,什麼是單例模式?單例模式是一種物件建立型模式,使用單例模式,可以保證為乙個類只生成唯一的例項物件。也就是說,在整個程式空間中,該類只存在乙個例項物件。其實,gof gang of four,代表意思是 設計模式一書,四個作者,被稱為四人組 對單例模式的定義是 保證乙個類,只有乙個例項存在,同事提...

設計模式 單例設計模式

歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...