单件模式(Singleton Pattern):单件模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单件模式是一种对象创建型模式。
单件模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
结构:

角色:
一个角色,即Singleton。
示例代码:
using System;
// "Singleton"
class Singleton
{
// Fields
private static Singleton instance;
// Constructor
private Singleton() {}
// Methods
public static Singleton Instance()
{
// Uses "Lazy initialization"
if( instance == null )
instance = new Singleton();
return instance;
}
}
public class Client
{
public static void Main()
{
// Constructor is protected -- cannot use new
Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
if( s1 == s2 )
Console.WriteLine( "The same instance" );
}
}
在单件模式的实现过程中,需要注意如下三点:
1.单件类的构造函数为私有;
2.提供一个自身的静态私有成员变量;
3.提供一个公有的静态工厂方法。