C#中單例模式的三種寫(xiě)法示例
更新時(shí)間:2015年06月17日 09:40:06 投稿:junjie
這篇文章主要介紹了C#中單例模式的三種寫(xiě)法示例,本文分別給出代碼實(shí)例,需要的朋友可以參考下
第一種最簡(jiǎn)單,但沒(méi)有考慮線程安全,在多線程時(shí)可能會(huì)出問(wèn)題,不過(guò)俺從沒(méi)看過(guò)出錯(cuò)的現(xiàn)象,表鄙視我……
復(fù)制代碼 代碼如下:
public class Singleton
{
private static Singleton _instance = null;
private Singleton(){}
public static Singleton CreateInstance()
{
if(_instance == null)
{
_instance = new Singleton();
}
return _instance;
}
}
第二種考慮了線程安全,不過(guò)有點(diǎn)煩,但絕對(duì)是正規(guī)寫(xiě)法,經(jīng)典的一叉
復(fù)制代碼 代碼如下:
public class Singleton
{
private volatile static Singleton _instance = null;
private static readonly object lockHelper = new object();
private Singleton(){}
public static Singleton CreateInstance()
{
if(_instance == null)
{
lock(lockHelper)
{
if(_instance == null)
_instance = new Singleton();
}
}
return _instance;
}
}
第三種可能是C#這樣的高級(jí)語(yǔ)言特有的,實(shí)在懶得出奇
復(fù)制代碼 代碼如下:
public class Singleton
{
private Singleton(){}
public static readonly Singleton instance = new Singleton();
}
哦,shit!
您可能感興趣的文章:
- c#單例模式(Singleton)的6種實(shí)現(xiàn)
- C#設(shè)計(jì)模式之單例模式實(shí)例講解
- C#窗口實(shí)現(xiàn)單例模式的方法
- 淺談C#單例模式的實(shí)現(xiàn)和性能對(duì)比
- C#單例模式(Singleton Pattern)實(shí)例教程
- 舉例講解C#編程中對(duì)設(shè)計(jì)模式中的單例模式的運(yùn)用
- C#單例模式(Singleton Pattern)詳解
- C# 設(shè)計(jì)模式之單例模式歸納總結(jié)
- C# 設(shè)計(jì)模式系列教程-單例模式
- C#實(shí)現(xiàn)單例模式的幾種方法總結(jié)
相關(guān)文章
C#中按引用傳遞與按值傳遞的區(qū)別,以及ref與out關(guān)鍵字的用法詳解
以下是對(duì)C#中按引用傳遞與按值傳遞的區(qū)別,以及ref與out關(guān)鍵字的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-07-07c#使用簡(jiǎn)單工廠模式實(shí)現(xiàn)生成html文件的封裝類(lèi)分享
這篇文章主要介紹了運(yùn)用了簡(jiǎn)單工廠模式實(shí)現(xiàn)頁(yè)面靜態(tài)化封裝類(lèi),思路比較簡(jiǎn)單,大家可根據(jù)自己的思路再擴(kuò)展此類(lèi)2014-01-01C# 獲取硬件參數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C# 獲取硬件參數(shù)的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10