Administrator
发布于 2024-07-30 / 29 阅读
0
0

单例模式

引入背景

一个类中只能有一个实例。

代码实现

单例类:

    public class Singleton
    {
        private Singleton(){}

        public static volatile Singleton GetInstance()
        {
            if (uniqueInstance == null)
            {
                lock (locker)
                {
                    if (uniqueInstance == null)
                    {
                        uniqueInstance = new Singleton();
                    }
                }
            }
            return uniqueInstance;
        }

        private static Singleton uniqueInstance;
        private static readonly object locker = new object();
    }

调用:

    class Program
    {
        static void Main(string[] args)
        {
            Singleton singleton1 = Singleton.GetInstance();
            Singleton singleton2 = Singleton.GetInstance();
            if (singleton1 == singleton2)
                Console.WriteLine("is equal");
        }
    }

结构组成

  • 单例模式包括一个Singleton类,主要要是定义创建实例的方法,允许访问它的唯一实例,该方法是一个静态方法。

UML图


评论