C#中的一种Singleton的实现(转)
2007-10-03 17:48
267 查看
在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
//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
相关文章推荐
- c#单例(Singleton)模式实现
- 在 C# 中实现 Singleton
- 【转】单体模式-经典实现 Implementing the Singleton Pattern in C#
- 45. Singleton类的C++/C#实现[Singleton]
- MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现
- C#的singleton 模式的实现
- 比较核心的技术了 虚拟ip的一种实现方式(手工添加和C#添加)
- MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现
- 在 C# 中实现 Singleton
- C#实现窗体圆角的一种方法
- 用C#实现一种超酷的任务栏滑出式提醒框
- Singleton Pattern in C# 5种实现
- [ZZ]Singleton的五种C#实现
- 从C#的Singleton设计模式实现看.NET Framework特性对开发者的重要性
- C# 验证码的一种实现
- [OC]Singleton的一种简便实现方式
- C#2.0 Singleton 的实现
- 在 C# 中实现 Singleton
- MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现
- Singleton模式在C#与C++中的实现