设计模式之单例模式(Singleton)
2010-01-21 21:07 key_sky 阅读(180) 评论(0) 编辑 收藏 举报单例模式(Singleton):保证一个类仅有一个实例,并提欧诺个一个访问它的全局访问点。当一个全局变量使得一个对象被访问,但它不能防止实例化多个对象,最好的方法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
Singleton:定义一个GetInstance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例。实现对唯一实例的受控访问。
Singleton1.cs
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
using System;
using System.Collections.Generic;
using System.Text;
//单例模式(Singleton):保证一个类仅有一个实例,并提欧诺个一个访问它的全局访问点。当一个
//全局变量使得一个对象被访问,但它不能防止实例化多个对象,最好的方法是让类自身负责保存
//它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
//Singleton:定义一个GetInstance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,
//主要负责创建自己的唯一实例。实现对唯一实例的受控访问。
namespace Singleton
{
class Singleton1
{
}
class Singleton
{
private static Singleton instance;
private Singleton()
{
}
public static Singleton GetInstance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
Program.cs
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
using System;
using System.Collections.Generic;
using System.Text;
namespace Singleton
{
class Program
{
static void Main(string[] args)
{
Singleton s1 = Singleton.GetInstance();
Singleton s2 = Singleton.GetInstance();
if (s1 == s2)
{
Console.WriteLine("两个对象是相同的实例");
}
Console.Read();
}
}
}
运行结果:
两个对象是相同的实例