单例模式(Singleton)
Posted ctddjyds
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式(Singleton)相关的知识,希望对你有一定的参考价值。
单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。
单例模式的特点:
首先,单例模式使类在程序生命周期的任何时刻都只有一个实例;
然后,单例的构造函数是私有的,外部程序如果想要访问这个单例类的话,必须通过 GetInstance()来请求(注意是请求)得到这个单例类的实例。
/// <summary> /// 懒汉式单例模式 /// Summary description for Spooler. /// </summary> public class Spooler { private static bool instance_flag= false; private Spooler() { instance_flag = true; } //简单模式 public static Spooler getSpooler() { if (! instance_flag) return new Spooler (); else return null; } private static Spooler m_instanceSpooler; private static readonly object m_objectPadLock = new object(); public static Spooler InstanceSpooler { get { //并不是线程安全的,在多线程模式下,可能产生第二个实例 //return m_instance == null ? new RectangleMethod() : m_instance; //采用双锁定技术 if (m_instanceSpooler == null) { lock (m_objectPadLock) { if (m_instanceSpooler == null) m_instanceSpooler = new Spooler(); } } return m_instanceSpooler; } } } /// <summary> ///饿汉式单例类 /// </summary> public sealed class Singleton { private static readonly Singleton singleton = new Singleton(); private Singleton() { } public static Singleton GetInstance() { return singleton; } }
以上是关于单例模式(Singleton)的主要内容,如果未能解决你的问题,请参考以下文章