using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 单例模式
{
/// <summary>
/// 单例模式作用产生唯一对象
单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其它对象提供这一实例。
应用:
每台计算机可以有若干个打印机,但只能有一个Printer Spooler,避免两个打印作业同时输出到打印机。
一个具有自动编号主键的表可以有多个用户同时使用,但数据库中只能有一个地方分配下一个主键编号。否则会出现主键重复。
/// </summary>
class Program
{
static void Main(string[] args)
{
//饿汉式
Penson p = Penson.GetPenson();
//懒汉式
Animus animus = Animus.GetAnimus();
}
}
class Penson
{
/// <summary>
/// 单例模式之饿汉式
/// </summary>
//第一步设置私有的构造函数
private Penson()
{ }
//第二步:设置全局唯一变量
private static Penson _penson = new Penson();
//第三步:写返回值为Penson类型的函数
public static Penson GetPenson()
{
return _penson;
}
}
class Animus
{
/// <summary>
/// 单例模式之懒汉式
/// </summary>
private Animus() { }
private static Animus _animus = null;
public static Animus GetAnimus()
{
if (_animus == null)
{
_animus = new Animus();
}
return _animus;
}
}
}