C#中的一種Singleton的實現)
來源:互聯網
上載者:User
在CSDN上看到了C#中的Singleton的實現,實用性並不是太大,不過裡邊結合了泛型和多線程同步技術,覺得不錯,記一下
//C#代碼
//singleton.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Singleton
{
public class SingleTon<T>
{
private static Object objLock = new Object();
protected SingleTon() {}
protected static T _instance;
public static T Instance()
{
if(null == _instance)
{
lock(objLock)
{
if(null == _instance) //must do this
_instance = (T)Activator.CreateInstance<T>();
}
}
return _instance;
}
public static void Destroy()
{
_instance = default(T);
}
}
public class Person
{
String m_strName;
int m_nAge;
public void Eat()
{
Console.WriteLine("Eating.. Name: {0}, Age{1}",m_strName,m_nAge);
}
}
}
//Main.cs
namespace Singleton
{
class program
{
static void Main(string[] args)
{
SingleTon<Person>.Instance().Eat();
SingleTon<Person>.Destroy();
}
}
}
轉自:http://12115294.qzone.qq.com/blog/27