單例模式的理解

2021-08-02 03:44:32 字數 415 閱讀 7785

單例模式:乙個類只有乙個例項化物件,只提供乙個全域性訪問點。全域性只有乙個例項,只從乙個地方訪問,使用起來就非常的簡單方便,保證了訪問點的唯一性和一致性,很容易為人熟知。

但是單例是沒有從屬的,自己管理自己的生命週期,等同於程式的生命週期,在程式執行過程中一直存在。這樣說來的話,就有一些弊端在裡邊,我們知道我們忌諱全域性可變化狀態,很有可能單例在全域性使用,被多個地方被呼叫,而且是不用宣告從屬的,一旦你輕易的改變其中乙個屬性的值,可能會影響區域性的程式執行結果,程式會出錯,因為你不確定在什麼被呼叫或者在哪呼叫過。這樣程式中,兩個好無聯絡的模組,可能會存在隱藏的耦合性。

也正是因為單例的全域性性和狀態性,需要我們謹慎的去使用單例。在物件導向的程式設計中,我們需要盡可能減少可變狀態的作用域,而單例與這個思想是背道而馳,下次使用單例考慮一下是否這個變數真正值得成為乙個單例,盡力減少模組之間的耦合性。

單例模式理解

單例模式 三要素 1 私有的構造方法 2 私有的靜態的例項物件 3 公共的靜態的提供訪問方法 根據單例模式的建立時機可以將其分為兩種型別 1 懶漢模式 在系統初始化時不會做初始化,會在什麼時候使用到時做初始化操作。public class ehanmoshi private static lanha...

單例模式理解

摘要 本文首先概述了單例模式產生動機,揭示了單例模式的本質和應用場景。緊接著,我們給出了單例模式在單執行緒環境下的兩種經典實現 餓漢式 和懶漢式,但是餓漢式是執行緒安全的,而懶漢式是非執行緒安全的。在多執行緒環境下,我們特別介紹了五種方式來在多執行緒環境下建立執行緒安全的單例,即分別使用synchr...

理解單例模式

對單例模式這一部落格的理解。在多執行緒時不能正常工作,因為沒有加synchronized 所以嚴格來說不能算是單例模式。public class singleton public static singleton getinstance return instance public class si...