單例設計模式

2021-08-14 06:21:06 字數 1427 閱讀 8058

實現1:懶載入,會出現執行緒安全問題

/**'

* 2023年1月1日 15:04:50

* 單例模式:懶載入,會出現執行緒問題

* @author snail

* */

public class singleton

/*** 該方法的好處:延遲例項化

* @return

*/public static singleton getinstance()

return uniqueinstance; }

}

實現2:急載入:無線程安全問問題,但是由於物件在類載入時就已經初始化,則若該物件建立是比較耗費資源同時可能在專案中未使用到,則造成了資源的浪費

/** * 單例模式:急載入,無線程問題,但是會在專案啟動時就建立物件,可能會造成資源浪費

* @author snail

* */

public class singleton2

public static singleton2 getinstance ()

}

實現3:懶載入:獲取物件的方法加鎖,解決了執行緒安全問題,但是卻將獲取物件的方法改為了同步方法,由於單例物件只需要建立物件,
但是每次訪問方法獲取物件時,都需要同步方法,同步乙個方法可能會造成程式執行效率下降100倍,因此,如果getinstance()方法是頻繁使用,則會造成程式效能的損耗

/** * 單例模式:懶載入,同時解決執行緒問題

* 在方法上加鎖:這樣的問題:例項只建立一次,但是每次訪問方法都會進入同步方法,導致累贅,同步乙個方法可能會造成程式執行效率下降100倍

* 不推薦使用,首推singleton4>singleton2>singleton3

* @author snail

* */

public class singleton3

public static synchronized singleton3 getinstance()

return uniqueinstance;

}}

實現4:懶載入:雙重加鎖,最優解決方法,解決執行緒安全問題,急載入導致的資源可能浪費問題,同步getinstance()方法帶來的損耗問題。

/** * 單例模式:懶載入,同時解決多執行緒和資源浪費問題

* 雙重鎖

* @author snail

* */

public class singleton4

public static singleton4 getinstance()

}} return uniqueinstance; }

}

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

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

設計模式 單例設計模式

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

設計模式 單例設計模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...