zoukankan      html  css  js  c++  java
  • 单例模式中的属性实现

     1       ///<summary>
     2         /// 尝试单例模式
     3         /// </summary>
     4         public class Db
     5         {
     6             /// <summary>
     7             /// 需要的数据库
     8             /// </summary>
     9             private static readonly SPMEntities db = new SPMEntities();//因为该字段是静态的,而所在类又是单例的,所以该类生命周期中,该字段不会变。
    10             static volatile Db _instance = null;
    11             static readonly object padlock = new object();
    12             /// <summary>
    13             /// 私有的构造方法
    14             /// </summary>
    15             private Db()
    16             {
    17 
    18             }
    19             public static Db GetInstance() //防止多线程并发导致失去单例,因此多重检测
    20             {
    21                 if (_instance == null)
    22                 {
    23                     lock (padlock)
    24                     {
    25                         if (_instance == null)
    26                         {
    27                             _instance = new Db();
    28                         }
    29                     }
    30                 }
    31                 return _instance;
    32             }
    33             public SPMEntities GetDb()//声明为实例方法,调用时可以这样: var entities = Db.GetInstance().GetDb();
    34             {
    35                 return db;
    36             }
    37         }
  • 相关阅读:
    lnmp分离部署
    Nginx
    Keepalived脑裂监控
    KVM虚拟化
    mysql中间件proxysql实现mysql读写分离
    分离部署lnmp
    nginx
    Keepalived脑裂监控
    keepalived高可用
    KVM虚拟化
  • 原文地址:https://www.cnblogs.com/yy1234/p/8116458.html
Copyright © 2011-2022 走看看