C++中的单例模式及按需释放模型(一)

关键字:C++、单例模式、友元、模板、多线程、对象生命周期 单例模式是设计模式中最简单最容易理解的模式之一,实用方便,项目设计开发中会被经常使用,但是不知道读者有没有考虑过这个问题,单例模式实例什么时候被释放,读者有兴趣可以仔细分析下,按照目前通常方法实现的单例模式都是直到系统退出的时候才释放的,甚至是有垃圾回收机制的C#上也是这样的,系统切换了功能模块还存在大量的这个模块根本不使用的单例
摘要由CSDN通过智能技术生成

关键字:C++、单例模式、友元、模板、多线程、对象生命周期

 

单例模式是设计模式中最简单最容易理解的模式之一,实用方便,项目设计开发中会被经常使用,但是不知道读者有没有考虑过这个问题,单例模式实例什么时候被释放,读者有兴趣可以仔细分析下,按照目前通常方法实现的单例模式都是直到系统退出的时候才释放的,甚至是有垃圾回收机制的C#上也是这样的,系统切换了功能模块还存在大量的这个模块根本不使用的单例类对象,实际上是很浪费存储空间的,单例类少还好说,如果单例类有几十甚至几百的时候(中大型项目这个数量不算夸张),这种空间占用就不是可以轻易容忍的了。

注意我这里说的不仅仅是安全释放的问题(目前网上的关于单例释放的解决方案大多都是安全释放,即程序退出时安全释放),而是能在程序运行中把本模块不用的(其他模块使用的)单例类及时从内存中释放掉。

如果读者觉得这是个问题,并且也想解决这个问题,可以仔细阅读下本系列博文,会对你解决这个问题有帮助的。

 

为了描述单例模式及其问题,首先举一个实际项目的例子,项目是一个手机的移动项目,需要访问硬件设备读取IC卡的内容,读取到的内容需要传递给界面模块显示,这些信息是和人相关的信息,相应的界面主要显示和人业务相关的内容,这些人业务通常需要提供类似民族的下拉列表框方便用户选择民族输入,同时项目中除了管理人业务,还有其他的类似部门管理、仓储货品管理等功能。

简单分析这个项目,发现其中有以下元素可以定义成单例模式对象

1、硬件访问类

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值