手机
当前位置:查字典教程网 >编程开发 >C#教程 >基于静态Singleton模式的使用介绍
基于静态Singleton模式的使用介绍
摘要:什么是静态单例模式?静态单例模式(StaticSingletonPattern)是我在实践中总结的模式,主要解决的问题是在预先知道某依赖项为...

什么是静态单例模式?

静态单例模式(Static Singleton Pattern)是我在实践中总结的模式,主要解决的问题是在预先知道某依赖项为单例应用时,通过静态缓存该依赖项来提供访问。当然,解决该问题的办法有很多,这只是其中一个。

实现细节

复制代码 代码如下:

/// <summary>

/// 静态单例

/// </summary>

/// <typeparam name="TClass">单例类型</typeparam>

public static class Singleton<TClass> where TClass : class, new()

{

private static readonly object _lock = new object();

private static TClass _instance = default(TClass);

/// <summary>

/// 获取单例实例

/// </summary>

public static TClass GetInstance()

{

return Instance;

}

/// <summary>

/// 单例实例

/// </summary>

public static TClass Instance

{

get

{

if (_instance == null)

{

lock (_lock)

{

if (_instance == null)

{

_instance = new TClass(); // must be public constructor

}

}

}

return _instance;

}

}

/// <summary>

/// 设置单例实例

/// </summary>

/// <param name="instance">单例实例</param>

public static void Set(TClass instance)

{

lock (_lock)

{

_instance = instance;

}

}

/// <summary>

/// 重置单例实例

/// </summary>

public static void Reset()

{

lock (_lock)

{

_instance = default(TClass);

}

}

}

应用测试

复制代码 代码如下:

class Program

{

interface IInterfaceA

{

string GetData();

}

class ClassA : IInterfaceA

{

public string GetData()

{

return string.Format("This is from ClassA with hash [{0}].", this.GetHashCode());

}

}

static void Main(string[] args)

{

string data1 = Singleton<ClassA>.GetInstance().GetData();

Console.WriteLine(data1);

string data2 = Singleton<ClassA>.GetInstance().GetData();

Console.WriteLine(data2);

Console.ReadKey();

}

}

测试结果

基于静态Singleton模式的使用介绍1

【基于静态Singleton模式的使用介绍】相关文章:

基于TCP异步Socket模型的介绍

.net(c#)中的new关键字详细介绍

c#中 String和string的区别介绍

C# 静态变量与静态方法实例研究

winform模拟鼠标按键的具体实现

C# SendKeys使用方法介绍

C#文件后缀名的详细介绍

深入多线程之:Wait与Pulse的使用详解

C#简单快速的json组件fastJSON使用介绍

C#中timer类的用法总结

精品推荐
分类导航