知识大全 C# “Singleton” 模式四种实现方法

Posted

篇首语:只要还有什么东西不知道,就永远应当学习。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C# “Singleton” 模式四种实现方法相关的知识,希望对你有一定的参考价值。

C# “Singleton” 模式四种实现方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  大家一定用过或者看过 Singleton 模式了吧

  下面给出三种实现方法 分别给出优缺点

  方法一

  public sealed class Singleton

  

  private static readonly Singleton instance = new Singleton();

  private Singleton()

  public static Singleton Instance

  

  get

  

  return instance;

  

  

  

  优点 简单明了

  缺点 耗费资源

  方法二

  public sealed class ClassicSingleton

  

  private static ClassicSingleton instance;

  private static object syncRoot = new Object();

  private ClassicSingleton()

  public static ClassicSingleton Instance

  

  get

  

  if (instance == null)

  

  lock (syncRoot)

  

  if (instance == null)

  

  // custom code

  instance = new ClassicSingleton();

  

  

  

  return instance;

  

  

  

  优点 节省资源

  缺点 代码冗长

  方法三

  public sealed class Singleton

  

  static Singleton()Instance = new Singleton();

  private Singleton()

  public static Singleton Instanceget; private set;

  

  优点 既节省资源 又简单明了

  缺点 线程不安全

  方法四

  public class Singleton

  

  private static Singleton instance;

  // Added a static mutex for synchronising use of instance

  private static System Threading Mutex mutex;

  private Singleton()

  static Singleton()

  

  instance = new Singleton();

  mutex = new System Threading Mutex();

  

  public static Singleton Acquire()

  

  mutex WaitOne();

  return instance;

  

  // Each call to Acquire() requires a call to Release()

  public static void Release()

  

  mutex ReleaseMutex();

  

  

  优点 既节省资源 又简单明了 线程也安全了(一箭三雕)

cha138/Article/program/net/201311/12245

相关参考

知识大全 从C#的Singleton设计模式实现看.NETFramework特性对开发者的重要性

从C#的Singleton设计模式实现看.NETFramework特性对开发者的重要性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布

知识大全 Singleton模式

最简单的设计模式学习:Singleton模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  学习

知识大全 设计模式之Singleton(单态模式)

设计模式之Singleton(单态模式)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要讨论

知识大全 单件模式singleton的理解

  Singleton模式是一个较为简单的模式下面的代码就可以建立一个Singlton模式的例子这是一个写系统日志的类实际应用的意义在于在内存中只保存一个实例避免开辟多个功能相同的工具类实例而耗用系统

知识大全 .Net 单例模式(Singleton)

.Net单例模式(Singleton)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!单例模式的意思

知识大全 在Java中应用设计模式Singleton

在Java中应用设计模式Singleton  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 在Java中应用设计模式之Singleton

在Java中应用设计模式之Singleton  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  基本

知识大全 23种设计模式的Java版--Singleton(单例)

23种设计模式的Java版--Singleton(单例)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 C#设计模式编程之抽象工厂模式

C#设计模式编程之抽象工厂模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  抽象工厂(Abst

知识大全 C#中的Iterator迭代器模式

C#中的Iterator迭代器模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!迭代器模式我们在平