自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# Singleton設(shè)計(jì)模式淺談

開發(fā) 后端
這里介紹C# Singleton設(shè)計(jì)模式是告訴您如何在你的應(yīng)用程序創(chuàng)建一個唯一類示例的全局對象,也就是說,這個對象只能被實(shí)例化一次,這個對象同時提供一個訪問它的一個全局的訪問點(diǎn)。

在向大家詳細(xì)介紹C#語言之前,首先讓大家了解下C# Singleton設(shè)計(jì)模式,然后全面介紹C#語言。

近來,我在學(xué)習(xí)如何在C#語言中使用設(shè)計(jì)模式中讀到一些資料,其中有關(guān)C# Singleton設(shè)計(jì)模式引起了我的注意。

學(xué)過設(shè)計(jì)模式的開發(fā)者都知道C# Singleton設(shè)計(jì)模式。我想簡要地解釋一下這個設(shè)計(jì)模式是為那些尚未學(xué)習(xí)過設(shè)計(jì)模式的朋友。C# Singleton設(shè)計(jì)模式是告訴您如何在你的應(yīng)用程序創(chuàng)建一個唯一類示例的全局對象,也就是說,這個對象只能被實(shí)例化一次,這個對象同時提供一個訪問它的一個全局的訪問點(diǎn)。這種對象如應(yīng)用程序中的窗口管理器或者是打印假脫機(jī)、數(shù)據(jù)庫連接池等。

現(xiàn)在讓我們先看一下設(shè)計(jì)模式一書中對C# Singleton設(shè)計(jì)模式的C++實(shí)現(xiàn)(為了方便比較,我把實(shí)現(xiàn)的代碼寫成內(nèi)聯(lián)的方式):

  1. classSingleton  
  2. {  
  3. public:  
  4. staticSingleton*Instance()  
  5. {  
  6. if(_instance==0)  
  7. {  
  8. _instance=newSingleton;  
  9. }  
  10. return_instance;  
  11. }  
  12. protected:  
  13. Singleton();  
  14. Private:  
  15. StaticSingleton*_instance;  
  16. };  
  17. Stington*Singleton::_instance=0

這里我不想對上述的代碼作解釋,大家可以參閱本文后面提供的參考文獻(xiàn)。

為了更好的理解C#,我這里也出示一下Java中的Singleton模式實(shí)現(xiàn)代碼(不是有人認(rèn)為C#是對Java的剽竊嗎J):

  1. classSingleton  
  2. {  
  3. publicSingletonInstance()  
  4. {  
  5. if(_instace==null)  
  6. {  
  7. synchronized(Class.forName("Singleton"))  
  8. {  
  9. if(_instance==null)  
  10. {  
  11. _instance=newSingleton();  
  12. }  
  13. }  
  14. }  
  15. return_instance;  
  16. }  
  17. protectedSingleton(){}  
  18. privatestaticSingleton_instance=null;  

【編輯推薦】

  1. C# this關(guān)鍵字詳解
  2. C#調(diào)用析構(gòu)方法詳解
  3. C#釋放托管資源簡單描述
  4. C#單路代理簡單分析
  5. C#文法產(chǎn)生式概述
責(zé)任編輯:佚名 來源: 博客園
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號