zoukankan      html  css  js  c++  java
  • 设计模式之单例模式(Singleton)

    单例,就是以私有类的构造函数,公开类的静态属性或者静态方法得到这个类型的实例,从而保证这个类只会存在一个实例。

    单例模式的实现 

    声明静态只读的锁对象

    多线程下的双重锁

    private SingleInstance(){}
    private static SingleInstance _instance;
    private static readonly object locker=new object();
    public static SingleInstance GetInstance()
    {
        if(_instance==null)
        {
           lock(locker)
           {
               if(_instance==null)
              {
               _instance=new SingleInstance();
              }
           }
        }
        return _instance;
    }    
    

      c#与公共语言运行库也提供了一种“静态初始化”方法,这种方法不需要开发人员显示的编写线程安全代码,即可解决多线程环境下它是不安全的问题【MSDN】

    public sealed class Singleton
    {
             private static readonly Singleton _instance=new Singleton();
             private Singleton(){}
             public static Singleton GetInstance()
             {
               return _instance;
             }
    }   
    

      参考资料:《大话设计模式》--程杰


    真正的认识自己,才能做好自己,做好自己,才能做好你将会做的每一件事。
  • 相关阅读:
    小程序 视频
    b161: NOIP2007 4.Hanoi双塔问题
    命名规则、.gitignore、freopen()
    c++学习记录(九)
    c++学习笔记(八)
    2020面向对象程序设计寒假作业2
    c++学习记录(七)
    c++学习记录(六)
    c+学习记录(五)
    c++学习记录(四)
  • 原文地址:https://www.cnblogs.com/encore620/p/4063817.html
Copyright © 2011-2022 走看看