Skip to content

Singleton

单例模式确保一个类只有一个实例。此模式有一个私有的构造函数,避免有多个实例。

普通写法:

public class Singleton
{
    private static Singleton? instance;

    public Singleton()
    {

    }

    public static Singleton Create()
    {
        return instance ??= new Singleton();
    }
}

普通写法下无法避免多线程时有多个实例。

饿汉模式 Hunger mode:

public class SingleTon
{
    private static readonly SingleTon instance = new SingleTon();

    public SingleTon()
    {

    }

    public static SingleTon Create()
    {
        return instance;
    }
}

将实例加上 readonly 关键字,将初始化由静态函数实现。