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

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();
}
}
}

角色梳理

Singleton
只有一个该角色;只有一个返回唯一实例的 static 方法。
要点 & 思路
1.设限的原因,避免多个实例间的相互影响(导致的 Bug);
网友评论