.net 设计模式之单例模式

¥22.00

请提供单例模式的详细说明和C#实现demo

hierror T4 发布于2年前

最佳解决方案

单例模式分为两种:懒汉模式、饿汉模式

懒汉模式:没有用到就不实例化,首次调用的时候在创建相应实例。懒汉模式在多线程同时初始化实例的时候有线程安全问题,需要加同步锁。 也真是因为加了同步锁,导致调用相应实例时每次都要进入锁,会有性能的损失

//简单的线程安全
public sealed class Singleton
{
    private static Singleton instance = null;
    private static readonly object padlock = new object();

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            lock (padlock)
            {
                if (instance == null)
                {
                    instance = new Singleton();
                }
                return instance;
            }
        }
    }
}


饿汉模式:不管有咩有使用到对象,该对象加载时就创建实例。因为加载程序时,不管是否使用对象,总要初始化实例,那么程序中单例模式比较多的时候就会造成启动慢的问题。

public sealed class Singleton
{
   //静态对象,加载程序即执行   
     public static readonly Singleton instance = new Singleton();

    private Singleton()
    {
    }

 
}

算法达人 T1 被采纳率100%
2020-07-06 11:52
打赏 0 1
页面统计
1586 访问
0 帮助
0.00 打赏

hierror 2019 © hierror.com 京ICP备13026190号-1

通知消息
  • 暂无任何消息