C# Singleton设计模式浅谈

开发 后端
这里介绍C# Singleton设计模式是告诉您如何在你的应用程序创建一个唯一类示例的全局对象,也就是说,这个对象只能被实例化一次,这个对象同时提供一个访问它的一个全局的访问点。

在向大家详细介绍C#语言之前,首先让大家了解下C# Singleton设计模式,然后全面介绍C#语言。

近来,我在学习如何在C#语言中使用设计模式中读到一些资料,其中有关C# Singleton设计模式引起了我的注意。

学过设计模式的开发者都知道C# Singleton设计模式。我想简要地解释一下这个设计模式是为那些尚未学习过设计模式的朋友。C# Singleton设计模式是告诉您如何在你的应用程序创建一个唯一类示例的全局对象,也就是说,这个对象只能被实例化一次,这个对象同时提供一个访问它的一个全局的访问点。这种对象如应用程序中的窗口管理器或者是打印假脱机、数据库连接池等。

现在让我们先看一下设计模式一书中对C# Singleton设计模式的C++实现(为了方便比较,我把实现的代码写成内联的方式):

  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

这里我不想对上述的代码作解释,大家可以参阅本文后面提供的参考文献。

为了更好的理解C#,我这里也出示一下Java中的Singleton模式实现代码(不是有人认为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关键字详解
  2. C#调用析构方法详解
  3. C#释放托管资源简单描述
  4. C#单路代理简单分析
  5. C#文法产生式概述
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-31 16:12:02

C#使用Singlet

2009-08-31 15:48:02

C# Singleto

2009-08-25 18:04:30

C#实现Singlet

2009-08-26 10:24:04

C# Observer

2009-07-09 17:30:59

Singleton模式C++ SingletJava Single

2015-09-06 11:07:52

C++设计模式单例模式

2009-09-02 13:22:23

C#组件化程序设计

2011-03-29 09:14:49

Dispose模式C#

2012-08-22 10:10:25

单态单态设计设计模式

2011-07-18 16:51:51

Cocoa 单态 模式

2009-08-20 18:30:33

C# ReaderWr

2011-09-21 10:56:31

C#结构

2009-08-31 16:01:31

C#和设计模式

2024-07-31 10:41:16

C#设计模式

2009-08-12 11:24:25

C# String对象

2009-08-07 11:26:53

C#数组结构

2009-08-31 09:37:09

C# Employee

2009-08-19 17:12:18

C# Connecti

2009-08-26 15:46:01

C#匿名类型

2009-08-20 10:24:52

C#开发WinForm
点赞
收藏

51CTO技术栈公众号