設計模式系列 單例模式

2022-01-23 03:23:33 字數 893 閱讀 7898

單例模式就是指單例類在一定的生命週期內只能有乙個物件例項,單例類的建立必須是本身,並能給使用者提供自身。

在現實世界中,每個生命體都可以被看做是乙個單例物件,唯一且具體,具有不可複製性。同樣的,在軟體開發領域中,有時我們需要保證客戶端在當前的客戶機上只能執行乙個例項這個時候,我們就應該考慮使用單例模式來實現這種業務場景。

略1、懶漢式,執行緒不安全

public class singleobject

public static singleobject getinstance() => _instance ?? (_instance = new singleobject());

public void showmessage()

}

2、懶漢式,執行緒安全

public class singleobject

public static singleobject getinstance()}}

return _instance;

}public void showmessage()

}

3、靜態內部類延遲載入

public class singleobject

internal static readonly singleobject instance = new singleobject();

}public void showmessage()

}

4、上層呼叫

class program

}

對於單例模式,較為好理解,如果需要保持物件的唯一性,則可以考慮使用這種模式進行解決。

設計模式系列 單例模式

單例模式 確保乙個類只有乙個例項,並提供乙個全域性訪問點。什麼情況下需要單例模式?一些類提供公共功能供別人呼叫,本身不會處理業務邏輯 類會被許多類和執行緒呼叫 單例模式的一些注意點 單例的生存期超長,會導致記憶體的持續占用。單例在多執行緒環境需要小心的處理執行緒互斥,進行資源保護。單例在類的繼承樹中...

設計模式系列 單例模式

今天單位有自己的食堂啦,發郵件收了工卡之後統一拿去啟用,以後就用工卡去食堂吃飯啦,早上2元,中午10元,晚上3元,都是自助噢,很爽,不過還是有一推人沒有第一時間啟用卡,也有的人啟用卡了忘記自己啟用了,我就是其中乙個,無奈下我只好到食堂自己去啟用卡了,餐廳只有乙個機會卡的櫃檯所以啟用的時候需要排隊,還...

設計模式系列之單例模式

在設計模式中,單例模式是屬於比較簡單是卻很實用的一種設計模式,單例模式的含義就是乙個類在程式中只能有不多於1個物件。但是看似簡單的單例模式,一不小心就會出現一些難以發現的隱藏bug。問題一 系統擁有多個類載入器 當系統擁有多個類載入器的時候,而又同時使用單例模式,解決辦法就是 為單例的類和單例類指定...