在Windows Mobile下使用Native C++开发日志类文章中dpol提问 “在C#下面怎么应用Singleton模式呢?”。下面写一下Singleton模式的.NET实现。

public sealed class Logger : IDisposable{//the Singleton Implement    // Static members are lazily initialized.    // .NET guarantees thread safety for static initialization public static readonly Logger Instance = new Logger();

private Logger()    {     }

public void Dispose()    {    }}

这个实现还是保证三个需求: 1. 有且只有一个对象实例化。 2.多线程的控制。3. 按需实例化。

sealed class 保证Singleton类不能被继承。什么时候中国人这个类变成 sealed 就好,不用老是被代表

static Logger Instance 保证按需实例化和多线程安全。

private Logger()  保证只有一个对象实例化。

很简单吧。

修改记录:

1.根据回复增加 readonly 到定义中。

转载于:https://www.cnblogs.com/procoder/archive/2010/02/25/Singleton-NET.html

Singleton模式的.NET实现相关推荐

  1. Android发展Singleton模式

    这是什么Singleton模式?它是Java23之间的一种模式,在Android发展也有着广泛的应用,例Calander类别,当对象是由未创建 new Calander而是Calander.getIn ...

  2. Singleton模式笔记

    在C++中,尽量用Singleton替换全局变量是个很好的建议,Singleton一般如下: class  CSingleton { private:     static CSingleton* m ...

  3. java设计模式:Singleton模式

    Singleton模式是java中用到最多的设计模式.用于控制的个数,防止多余的实例化及修改.在仅有一个对象存在时,操作很有效. 1.构造函数私有化,其它类不能实例化对象 2.引用私有化,没有其它的修 ...

  4. Singleton模式学习

    动机(Motivation) 在软件系统中,经常有这样一些类,必须保证它们在系统中只存在一个类的实例,才能确保它们逻辑的正确性,以及良好的效率 如何绕过常规的构造器,提供一种机制来保证一个类只有一个实 ...

  5. 细颗粒度Singleton模式实现

    作为一个很典型的设计模式,Singleton模式常常被用来展示设计模式的技巧,并且随着技术的演进,.NET语言和Java都已经把经典<Design Patterns : Elements of ...

  6. Design Pattern: Singleton 模式

    一句话概括:保证一个类仅有一个实例,并提供一个访问它的全局访问点. Singleton的英文意义是独身,也就是只有一个人,应用在物件导向语言上,通常翻译作单例:单一个实例(Instance).  很多 ...

  7. 剑指 offer set 28 实现 Singleton 模式

    singleton 模式又称单例模式, 它能够保证只有一个实例. 在多线程环境中, 需要小心设计, 防止两个线程同时创建两个实例. 解法 1. 能在多线程中工作但效率不高 public sealed ...

  8. Singleton模式的实现

    1.实现Singleton模式 设计一个类,我们只能生成该类的一个实例. 2.低级解法一:只适用于单线程环境 因为我们只能生成一个实例,所以我们必须把构造函数设置为私有函数已禁止他人创建实例.可以定义 ...

  9. 人工智能——Singleton模式

    上次在状态模式中的设计有一个严重的问题,就是如下: voidCTroll::ChageState(CState* pNewState) {        deletem_pCurrentState; ...

  10. 转:Singleton模式

    C++完美实现Singleton模式  转自:http://www.cppblog.com/dyj057/archive/2005/09/20/346.html boost库的Singleton的实现 ...

最新文章

  1. 《妙解Hibernate 3.X》读书笔记一-Hibernate概述及环境搭建
  2. iphone个系列尺寸_iPhone 12系列、11系列尺寸对比
  3. CentOS系统的优化
  4. python 拓扑排序正确版
  5. 输入一颗二元查找树,将该树转换为它的镜像
  6. python3.9出了吗_Python 3.9 正式版要来了,会有哪些新特性?
  7. linux/unix编程手册-61_64
  8. 带有Guice的富域模型
  9. 最近发现了一条新的“致富”路
  10. 单片机 多机通讯c语言,【C语言】89c52单片机的多机串口通讯,救助
  11. Sketch 67.2 简体中文版 最佳Mac产品原型设计工具
  12. 20本适合C/C++程序员入门的C/C++编程书籍PDF版
  13. Java项目(一):家庭收支记账软件
  14. Java图像处理——美颜相机项目核心
  15. 基于HTML5移动app开发教程一
  16. office修复找不到msi_Microsoft Office安装程序找不到ProPlus.WW\ProPlusWW.msi
  17. 开放平台中的鉴权的实现
  18. DataWhale活动-二手车价格预测 task3
  19. python 删除sheet_Python操作Excel删除一个Sheet
  20. 报告| Q3区块链游戏行业全景:玩赚强势驱动,链游热度持续

热门文章

  1. 程序设计用户生日怎么发推送_生日祝福:儿子生日怎么发朋友圈说说 儿子生日怎么写祝福语...
  2. 北京理工大学计算机学院杨晨,杨旭_北京理工大学计算机学院
  3. matlab求方程实根,简单迭代法求方程根的MATLAB程序
  4. md5util java_Java 工具类 - MD5Util
  5. 系统学习深度学习(三十五)--策略梯度(Policy Gradient)
  6. python 提取邮箱的正则表达式
  7. mysql 全局权限入门
  8. TADVAlertWindow
  9. 透过用户思维谈程序员的进阶之路
  10. Android 实现应用升级方案(暨第三方自动升级服务无法使用后的解决方案)