美文网首页设计模式
第 5 章 Singleton 模式 -- 只有一个实例

第 5 章 Singleton 模式 -- 只有一个实例

作者: oO反骨仔Oo | 来源:发表于2018-08-31 18:11 被阅读0次
    image.png

    Singleton 模式

    概念:确保只生成一个实例的模式。

    示例

    image.png
    using System;
    
    namespace SingletonPattern
    {
        /// <summary>
        /// 单例
        /// </summary>
        internal class Singleton
        {
            private static readonly Singleton Instance = new Singleton();
    
            private Singleton()
            {
                Console.WriteLine("生成了一个实例");
            }
    
            /// <summary>
            /// 获取实例
            /// </summary>
            /// <returns></returns>
            public static Singleton GetInstance()
            {
                return Instance;
            }
        }
    }
    
    using System;
    
    namespace SingletonPattern
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                var obj1 = Singleton.GetInstance();
                var obj2 = Singleton.GetInstance();
    
                Console.WriteLine(obj1 == obj2 ? "两者是相同的实例" : "两者时不同的实例");
    
                Console.Read();
            }
        }
    }
    
    image.png

    角色梳理

    image.png

    Singleton

    只有一个该角色;只有一个返回唯一实例的 static 方法。

    要点 & 思路

    1.设限的原因,避免多个实例间的相互影响(导致的 Bug);

    相关模式

    AbstractFactory 模式

    Builder 模式

    Facade 模式

    Prototype 模式

    相关文章

      网友评论

        本文标题:第 5 章 Singleton 模式 -- 只有一个实例

        本文链接:https://www.haomeiwen.com/subject/ubdewftx.html