首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C++】来探索“单例模式”

【C++】来探索“单例模式”

作者头像
看、未来
发布2020-08-26 11:17:44
发布2020-08-26 11:17:44
6650
举报

我就是我,是不一样的烟火。你就是你,是五毛钱一包的呲花

单例是什么?是“我”这个类只能生产一个类,仅此一份,垄断地位;是不允许“克隆”,不允许继承,不允许构造两个“我”。

为什么?大家看过分身的电影吧,那把我一分为二,“1号我”把人打了,人家叫人来,正巧碰见“二号我”,好,“二号我”就惨了,这就是信息不对称,信息不纯正。再比方说,一份只有“我”能经手的机密文件,“一号我”在读,偏偏“二号我”这时候又要改,那怎么办?这就是信息更新不同步。单例类的存在,就是为了避免这些情况的出现,把人打了,是“我”打的就是“我”打的,处理机密信息,读就是读,写就是写。

具体的操作方法在上一篇用C++跟你聊聊“单例模式”,类的计划生育之中已经讲得清楚了。

所以这一篇我们来拓展一些上一篇没有讲到的。

单例模式的优缺点

优点

  • 由于单例模式在内存中只存在一个对象,减少了内存的开支,特别是当对象需要频繁的创建、销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显。
  • 单例模式可以避免对内存的多重占用。
  • 单例模式可以在系统设置全局的访问点,优化和共享资源访问。这招我经常用,也很喜欢,因为确实方便,做一个标志位单例类,负责所有数据表的映射处理。(要了解可以私信我)

缺点

  • 单例模式一般没有接口,难以拓展。如果要拓展,考虑重构。
  • 单例模式对于测试是不利的。在并发环境中,如果单例没有完成,是不能进行测试的。

单例模式的使用场景

  • 要求生成唯一序列号的环境。
  • 在整个项目中需要一个共享访问点或共享数据。
  • 创建一个对象需要消耗的资源过多。

多例模式

哈,如果一个类要求只能初始化四五个对象呢? 那就用多例模式啊! 何为多例模式? 维护一个对象数组不就好咯。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单例模式的优缺点
    • 优点
    • 缺点
  • 单例模式的使用场景
  • 多例模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档