设计模式

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

2018-08-31  本文已影响0人  oO反骨仔Oo
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 模式

上一篇下一篇

猜你喜欢

热点阅读