c#单例模式的实现

王朝学院·作者佚名  2016-05-17
窄屏简体版  字體: 小  |  中  |  大  |  超大  

c#单例模式的实现单例模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。

实现要点:

1、是单例模式的类只提供私有的构造函数。

2、是类定义中含有一个该类的静态私有对象。

3、是该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象。

双重锁定实现代码(多线程内):

namespace Singleton{ public class Singleton { //定义一个私有的静态全局变量来保存该类的唯一实例 PRivate static Singleton _singleton; //定义一个只读静态对象 //且这个对象是在程序运行时创建的 private static readonly object _lockObj = new object(); /// <summary> /// 构造函数必须是私有的 /// 这样在外部便无法使用 new 来创建该类的实例 /// </summary> private Singleton() { } /// <summary> /// 定义一个全局访问点 /// 设置为静态方法 /// 则在类的外部便无需实例化就可以调用该方法 /// </summary> /// <returns></returns> public static Singleton GetInstance() { //这里可以保证只实例化一次 //即在第一次调用时实例化 //以后调用便不会再实例化 //第一重 singleton == null if (_singleton == null) { lock (_lockObj) { //第二重 singleton == null if (_singleton == null) { _singleton = new Singleton(); } } } return _singleton; } }}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航