首頁 >常見問題 >單例模式是什麼?

單例模式是什麼?

Guanhui
Guanhui原創
2020-06-28 17:50:273293瀏覽

單例模式屬於創建類型的一種常用的軟體設計模式,透過該模式的方法創建的類別在當前進程中只有一個實例,其好處可以確保所有物件都存取唯一實例,以及減少記憶體開支和系統的效能開銷。

單例模式是什麼?

單例模式是設計模式中最簡單的形式之一。這一模式的目的是使得類別的一個物件成為系統中的唯一實例。要實現這一點,可以從客戶端對其進行實例化開始。因此需要用一種只允許產生物件類別的唯一實例的機制,「阻止」所有想要生成物件的存取。使用工廠方法來限制實例化製程。這個方法應該是靜態方法(類別方法),因為讓類別的實例去產生另一個唯一實例毫無意義。

單例模式實作方式

通常單例模式在Java語言中,有兩種​​建構方式:

  • 懶漢式—線程不安全:最基礎的實作方式,線程上下文單例,不需要共享給所有線程,也不需要加synchronize之類的鎖,以提高效能。

  • 懶漢式—線程安全:加上synchronize之類保證線程安全的基礎上的懶漢模式,相對性能很低,大部分時間並不需要同步

  • 餓漢方式。指全域的單例實例在類別裝載時建構。

  • 雙檢鎖定式。在懶漢式基礎上利用synchronize關鍵字和volatile關鍵字確保第一次創建時沒有線程間競爭而產生多個實例,僅第一次創建時同步,性能相對較高

  • #登記式。作為創建類別的全域屬性存在,在創建類別被裝載時創建

  • 枚舉。 java中枚舉類別本身也是單例模式

#推薦教學:《PHP

以上是單例模式是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn