一步一坑IT@程序员猿媛

设计模式- 单例模式(Singleton Pattern)

2019-04-25  本文已影响1人  易兒善

定义(单例模式又称单件模式)

单件模式(Singleton Pattern)要求一个类有且仅有一个实例,并且提供了一个全局的访问点,在同一时刻只能被一个线程所访问

C#例子

    /// <summary>
    /// 单件模式实现方式:简单线程安全。
    /// </summary>
    public sealed class Singletion
    {
        //私有构造函数,防止通过new实例化对象
        private Singletion() {
        }
        //定义一个静态变量来保存类的实例
        private static Singletion _instance;
        //定义一个标识确保线程同步
        private static readonly object _lock = new object();
        //定义公有静态方法,获取实例,并加入判断,保证实例只被创建一次
        public static Singletion GetInstance() {
            if (_instance == null) {
                //锁,多线程时,保证实例只被创建一次
                lock (_lock)
                {
                    if (_instance == null)
                    {
                        _instance = new Singletion();
                    }
                }
            }
            return _instance;
        }
        public string GetName() {
            return "我是单例模式";
        }
    }

        static void Main(string[] args)
        {
            var singletion = Singletion.GetInstance();
            Console.WriteLine( singletion.GetName());
            Console.ReadLine();
        }

单件模式参与者:

单件模式实现要点

单件模式使用注意点

单件模式适用情形

单件模式特点

其他

源码地址

dotnet-design-patterns

其他设计模式

23种设计模式

上一篇下一篇

猜你喜欢

热点阅读