單例模式的兩種實現方式-懶漢模式和餓漢模式


將讀取數據庫連接配置文件改造成單例模式

項目整體結構:

 

 

懶漢模式:在用的時候才創建對象實例,不用的時候,是不會創建對象實例的

 

 

改造BaseDao.java類

 

 試想一下,在並發環境下,還是回創建多個ConfigManager實例的,這種問題怎樣解決?

辦法:使用sychronise關鍵字進行上鎖。

 

 餓漢模式:

特點:在類加載的時候,就創建對象。只不過不具備延遲加載的特性了

想一下,那我們現在該腫么辦?我們現在想做的其實就是在使用餓漢模式的同時,讓他具備延遲加載的特性。

解決辦法:使用靜態內部類

下面我們在原來的基礎上進行改造,為了不越改越亂,我新建一個類進行測試

 

 編寫相應的測試方法:

 

 運行結果:

test Singleton:null
test getInstance Singleton:cn.smbms.dao.Singleton@2f9ee1ac

通過這種方式,我們能夠類比出來,這樣就不會產生多個ConfigManager實例了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM