代码改变世界

设计模式之单例模式(Singleton)

2010-01-21 21:07  key_sky  阅读(180)  评论(0编辑  收藏  举报

单例模式(Singleton):保证一个类仅有一个实例,并提欧诺个一个访问它的全局访问点。当一个全局变量使得一个对象被访问,但它不能防止实例化多个对象,最好的方法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
Singleton:定义一个GetInstance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例。实现对唯一实例的受控访问。

Singleton1.cs

代码
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

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

运行结果:

两个对象是相同的实例