a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

基于靜態Singleton模式的使用介紹

2020-01-24 03:27:12
字體:
來源:轉載
供稿:網友

什么是靜態單例模式?

靜態單例模式(Static Singleton Pattern)是我在實踐中總結的模式,主要解決的問題是在預先知道某依賴項為單例應用時,通過靜態緩存該依賴項來提供訪問。當然,解決該問題的辦法有很多,這只是其中一個。

實現細節

復制代碼 代碼如下:

/// <summary>
  /// 靜態單例
  /// </summary>
  /// <typeparam name="TClass">單例類型</typeparam>
  public static class Singleton<TClass> where TClass : class, new()
  {
    private static readonly object _lock = new object();
    private static TClass _instance = default(TClass);

    /// <summary>
    /// 獲取單例實例
    /// </summary>
    public static TClass GetInstance()
    {
      return Instance;
    }

    /// <summary>
    /// 單例實例
    /// </summary>
    public static TClass Instance
    {
      get
      {
        if (_instance == null)
        {
          lock (_lock)
          {
            if (_instance == null)
            {
              _instance = new TClass(); // must be public constructor
            }
          }
        }

        return _instance;
      }
    }

    /// <summary>
    /// 設置單例實例
    /// </summary>
    /// <param name="instance">單例實例</param>
    public static void Set(TClass instance)
    {
      lock (_lock)
      {
        _instance = instance;
      }
    }

    /// <summary>
    /// 重置單例實例
    /// </summary>
    public static void Reset()
    {
      lock (_lock)
      {
        _instance = default(TClass);
      }
    }
  }


應用測試
復制代碼 代碼如下:

class Program
  {
    interface IInterfaceA
    {
      string GetData();
    }
    class ClassA : IInterfaceA
    {
      public string GetData()
      {
        return string.Format("This is from ClassA with hash [{0}].", this.GetHashCode());
      }
    }
    static void Main(string[] args)
    {
      string data1 = Singleton<ClassA>.GetInstance().GetData();
      Console.WriteLine(data1);
      string data2 = Singleton<ClassA>.GetInstance().GetData();
      Console.WriteLine(data2);

      Console.ReadKey();
    }
  }


測試結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩欧美色| 狠狠干影院 | 丁香婷婷综合激情五月色 | 日韩免费在线视频 | 午夜在线一区 | 亚洲第一av网站 | 日韩国产免费观看 | 日韩精品一区二区三区第95 | 欧美日韩国产高清 | 色站综合 | 成人蜜桃视频 | 午夜影院网站 | 亚洲蜜桃精久久久久久久 | 亚洲成人精品网 | 日韩一区二区福利视频 | 精品成人在线 | 最新中文字幕在线观看 | 99国产视频 | 国产成人在线视频观看 | av免费在线播放 | 一区二区在线看 | 亚洲精品一区二区三区 | 久久综合中文字幕 | 欧美一区久久 | 成人精品网站在线观看 | 日本久久久久久 | 久热亚洲 | 国产aⅴ一区二区 | 99精品久久99久久久久 | 精品视频免费在线 | www.国产91| 男女羞羞视频免费在线观看 | 欧美一级特黄aaaaaaa视频片 | 99re在线视频| 操老逼| 欧美a在线观看 | 欧美精品1区2区 | av免费在线播放 | 看免费av | 国产亚洲一区二区三区在线 | 欧美在线二区 |