最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#單例模式(Singleton Pattern)實例教程

 更新時間:2014年09月12日 15:14:41   投稿:shichen2014  
這篇文章主要介紹了C#單例模式(Singleton Pattern)的實現(xiàn)方法,主要講述了即時加載的單例模式、延遲加載的單例模式與線程安全的單例模式,需要的朋友可以參考下

本文以實例形式講述了C#單例模式(Singleton Pattern)的實現(xiàn)方法,分享給大家供大家參考。具體實現(xiàn)方法如下:

一般來說,當(dāng)從應(yīng)用程序全局的角度來看,如果只允許類的一個實例產(chǎn)生,就可以考慮單例模式。

1.即時加載的單例模式

把類的實例賦值給類的一個靜態(tài)字段。

class Program
{
    static void Main(string[] args)
    {
      Logger log = Logger.GetInstance();
      log.WriteToFile();
      Console.Read();
    }
}
public class Logger
{
    private static Logger logger = new Logger();
    private Logger(){}
    public static Logger GetInstance()
    {
      return logger;
    }
    public void WriteToFile()
    {
      Console.WriteLine("錯誤被寫入文件了~~");
    }
}

2.延遲加載的單例模式

直到調(diào)用類的靜態(tài)方法,才產(chǎn)生類的實例。

public class Logger
{
    private static Logger logger = null;
    private Logger(){}
    public static Logger GetInstance()
    {
      if (null == logger)
      {
        logger = new Logger();
      }
      return logger;
    }
    public void WriteToFile()
    {
      Console.WriteLine("錯誤被寫入文件了~~");
    }
}

3.線程安全的單例模式

直到調(diào)用類的靜態(tài)方法,保證只有一個線程進入產(chǎn)生類的實例。

public class Logger
{
    private static Logger logger = null;
    private static object lockObj = new object();
    private Logger(){}
    public static Logger GetInstance()
    {
      lock (lockObj)
      {
        if (logger == null)
        {
          logger = new Logger();
        }
        return logger;
      }
    }
    public void WriteToFile()
    {
      Console.WriteLine("錯誤被寫入文件了~~");
    }
}

總結(jié):靜態(tài)單例類型的私有字段,私有構(gòu)造函數(shù),獲取單例的方法是構(gòu)成單例模式的3個必要元素。希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#設(shè)計模式之Mediator中介者模式解決程序員的七夕緣分問題示例

    C#設(shè)計模式之Mediator中介者模式解決程序員的七夕緣分問題示例

    這篇文章主要介紹了C#設(shè)計模式之Mediator中介者模式解決程序員的七夕緣分問題,簡單說明了中介者模式的定義并結(jié)合七夕緣分問題實例分析了中介者模式的具體使用技巧,需要的朋友可以參考下
    2017-09-09
  • C#實現(xiàn)封面圖片生成器的示例代碼

    C#實現(xiàn)封面圖片生成器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)簡單的封面圖片生成器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • DevExpress中GridControl列轉(zhuǎn)義的實現(xiàn)方法

    DevExpress中GridControl列轉(zhuǎn)義的實現(xiàn)方法

    這篇文章主要介紹了DevExpress中GridControl列轉(zhuǎn)義的實現(xiàn)方法,在項目開發(fā)中有一定的實用價值,需要的朋友可以參考下
    2014-08-08
  • C#中DataTable 轉(zhuǎn)實體實例詳解

    C#中DataTable 轉(zhuǎn)實體實例詳解

    這篇文章主要介紹了C#中DataTable 轉(zhuǎn)實體實例詳解,需要的朋友可以參考下
    2017-04-04
  • C#?wpf定義ViewModelBase進行簡化屬性綁定

    C#?wpf定義ViewModelBase進行簡化屬性綁定

    綁定機制是wpf的核心,也是界面獨立的根本,尤其是使用了mvvm模式,本文主要介紹了wpf如何定義ViewModelBase進行簡化屬性綁定,需要的可以參考下
    2024-04-04
  • Unity中C#和Java的相互調(diào)用實例代碼

    Unity中C#和Java的相互調(diào)用實例代碼

    在unity中接入sdk或者定制一些功能時,需要調(diào)用系統(tǒng)接口。安卓手機實際操作中,也就是Unity與android相互調(diào)用。我們在Unity中使用c#,android中使用java。
    2018-02-02
  • C#實現(xiàn)獲取程序路徑方法小結(jié)

    C#實現(xiàn)獲取程序路徑方法小結(jié)

    這篇文章主要介紹了C#實現(xiàn)獲取程序路徑方法,實例分析了C#獲取文件路徑的各種常用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#虛方法的聲明和使用實例教程

    C#虛方法的聲明和使用實例教程

    這篇文章主要介紹了C#虛方法的聲明和使用實例教程,對于初學(xué)者理解C#的虛方法有一定的幫助,需要的朋友可以參考下
    2014-07-07
  • C# 值類型的實現(xiàn)

    C# 值類型的實現(xiàn)

    本文主要介紹了C# 值類型的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • C#實現(xiàn)XML文檔的增刪改查功能示例

    C#實現(xiàn)XML文檔的增刪改查功能示例

    這篇文章主要介紹了C#實現(xiàn)XML文檔的增刪改查功能,結(jié)合實例形式分析了xml文檔的創(chuàng)建及C#針對xml文檔的加載及增刪改查等操作技巧,需要的朋友可以參考下
    2017-01-01

最新評論

潜江市| 龙岩市| 沂水县| 区。| 芒康县| 喀喇沁旗| 永顺县| 辽阳市| 苏州市| 怀来县| 舞钢市| 抚松县| 大悟县| 晋州市| 泰州市| 巫溪县| 孙吴县| 项城市| 娄底市| 安化县| 清水县| 通化市| 汾阳市| 新竹市| 威信县| 民丰县| 洪雅县| 海盐县| 吉木萨尔县| 铜陵市| 任丘市| 玉山县| 息烽县| 清远市| 保定市| 瓮安县| 灵丘县| 岱山县| 台山市| 韶关市| 浦北县|