首页 > 代码库 > 单例模式(Singleton)
单例模式(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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。