C#单例模式的三种写法

简介: 第一种最简单,但没有考虑线程安全,在多线程时可能会出问题  public class Singleton{    private static Singleton _instance = null;    private Singleton(){}    public static Sing...

 

第一种最简单,但没有考虑线程安全,在多线程时可能会出问题 

public class Singleton
{
    private static Singleton _instance = null;
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)

        {
            _instance = new Singleton();
        }
        return _instance;
    }
}

第二种考虑了线程安全,不过有点烦,但绝对是正规写法,经典的一叉 

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#这样的高级语言特有的,实在懒得出奇

public class Singleton
{

    private Singleton(){}
    public static readonly Singleton instance = new Singleton();
}  

相关文章
|
设计模式 C#
C# 机房重构单例模式
C# 机房重构单例模式
59 0
|
设计模式 安全 C#
【设计模式】C#实现单例模式
单例模式:某一个类在系统中只需要有一个实例对象,而且对象是由这个类自行实例化并提供给系统其它地方使用。单例模式属于一种创建型设计模式。
|
设计模式 开发框架 缓存
C# 程序开发:设计模式之单例模式
1、定义:单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。 首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了。
1126 0
|
C#
C#设计模式之一单例模式(Singleton Pattern)【创建型】
原文:C#设计模式之一单例模式(Singleton Pattern)【创建型】 一、引言     看了李建忠老师的讲的设计模式已经有一段时间了(这段时间大概有一年多了),自己还没有写过自己的、有关设计模式的文章。
2233 0
|
.NET C# 开发框架
C# 单例模式的五种写法
C# 单例模式的五种写法及优劣分析,见下文: [单例模式及常见写法](http://blog.csdn.net/jiankunking/article/details/50867050) $(function () { $('pre.prettyprint code').each(function
1996 0
下一篇
DDNS