欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于靜態(tài)Singleton模式的使用介紹

 更新時(shí)間:2013年04月18日 11:53:22   作者:  
本篇文章小編為大家介紹,基于靜態(tài)Singleton模式的使用介紹。需要的朋友參考下

什么是靜態(tài)單例模式?

靜態(tài)單例模式(Static Singleton Pattern)是我在實(shí)踐中總結(jié)的模式,主要解決的問題是在預(yù)先知道某依賴項(xiàng)為單例應(yīng)用時(shí),通過靜態(tài)緩存該依賴項(xiàng)來提供訪問。當(dāng)然,解決該問題的辦法有很多,這只是其中一個(gè)。

實(shí)現(xiàn)細(xì)節(jié)

復(fù)制代碼 代碼如下:

/// <summary>
  /// 靜態(tài)單例
  /// </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>
    /// 獲取單例實(shí)例
    /// </summary>
    public static TClass GetInstance()
    {
      return Instance;
    }

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

        return _instance;
      }
    }

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

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


應(yīng)用測試
復(fù)制代碼 代碼如下:

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();
    }
  }


測試結(jié)果

相關(guān)文章

  • 詳解WPF雙滑塊控件的使用和強(qiáng)制捕獲鼠標(biāo)事件焦點(diǎn)

    詳解WPF雙滑塊控件的使用和強(qiáng)制捕獲鼠標(biāo)事件焦點(diǎn)

    這篇文章主要為大家詳細(xì)介紹了WPF中雙滑塊控件的使用和強(qiáng)制捕獲鼠標(biāo)事件焦點(diǎn)的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下
    2022-07-07
  • 舊項(xiàng)目升級(jí)新版Unity2021導(dǎo)致Visual?Studio無法使用的問題

    舊項(xiàng)目升級(jí)新版Unity2021導(dǎo)致Visual?Studio無法使用的問題

    在項(xiàng)目開發(fā)過程中,不可避免的會(huì)升級(jí)開發(fā)工具。這次我在舊項(xiàng)目版本升級(jí)到新版Unity2021.2.x時(shí),出現(xiàn)Visual?Studio無法定位等問題,這里我給大家分享下解決方法,舊項(xiàng)目升級(jí)新版Unity2021導(dǎo)致Visual?Studio無法使用的問題,需要的朋友可以參考下
    2021-12-12
  • C# VB 實(shí)現(xiàn)10進(jìn)制 16進(jìn)制之間互相轉(zhuǎn)換

    C# VB 實(shí)現(xiàn)10進(jìn)制 16進(jìn)制之間互相轉(zhuǎn)換

    如何將10進(jìn)制轉(zhuǎn)成16進(jìn)制,又如何將16進(jìn)制數(shù)轉(zhuǎn)成10進(jìn)制,本文將介紹C#和VB實(shí)現(xiàn)代碼,需要了解的朋友可以參考下
    2012-11-11
  • C#?重寫Notification提示窗口的示例代碼

    C#?重寫Notification提示窗口的示例代碼

    本文主要介紹了C#?重寫Notification提示窗口的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#實(shí)例化和靜態(tài)類對象調(diào)用對比

    C#實(shí)例化和靜態(tài)類對象調(diào)用對比

    這篇文章主要介紹了C#實(shí)例化和靜態(tài)類對象調(diào)用對比,什么時(shí)候用實(shí)例化對象,什么時(shí)候用靜態(tài)類對象,內(nèi)存和生命周期又是如何,框架本身的回收機(jī)制是什么,下文詳細(xì)解說需要的小伙伴可以參考一下
    2022-04-04
  • c#進(jìn)程之間對象傳遞方法

    c#進(jìn)程之間對象傳遞方法

    本文主要介紹了c#進(jìn)程之間對象傳遞的方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • C#游戲開發(fā)之實(shí)現(xiàn)華容道游戲

    C#游戲開發(fā)之實(shí)現(xiàn)華容道游戲

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)經(jīng)典華容道游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • C#實(shí)現(xiàn)的海盜分金算法實(shí)例

    C#實(shí)現(xiàn)的海盜分金算法實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的海盜分金算法,結(jié)合具體實(shí)例形式分析了海盜分金算法的原理與C#相應(yīng)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • C#中String與string的區(qū)別分析

    C#中String與string的區(qū)別分析

    這篇文章主要介紹了C#中String與string的區(qū)別,對于加深C#數(shù)據(jù)類型與類的理解有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • WPF實(shí)現(xiàn)帶模糊搜索的DataGrid的示例代碼

    WPF實(shí)現(xiàn)帶模糊搜索的DataGrid的示例代碼

    這篇文章主要為大家詳細(xì)介紹了WPF如何實(shí)現(xiàn)帶模糊搜索的DataGrid,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02

最新評(píng)論