当前位置: 首页 > news >正文

单例模式 详解

单例模式

简介: 让类只初始化一次, 然后不同的地方都能获取到同一个实例
这是非常常用的一种模式, 系统稍微大一点基本上都会用到. 在系统中, 不同模块的总管理类都已单例模式居多
这里我们不仅使用c++实现单例模式, 也会用python2实现一遍

python代码

想要看更详细的python单例模式的不同写法, 参照: python单例模式的几种写法

class Singleton(type):def __call__(cls, *args, **kwargs):if not hasattr(cls, '_instance'):cls._instance = super(Singleton, cls).__call__(*args, **kwargs)return cls._instanceclass Test1(object):__metaclass__ = Singletondef __init__(self):passif __name__ == '__main__':t1 = Test1()t2 = Test1()if t1 is t2:print 'Singleton'

执行结果
在这里插入图片描述

c++代码
class System
{
private:static System* _instance;
public:static System* get_instance(){if (not _instance)_instance = new System();return _instance;}
};System* System::_instance = nullptr;int main()
{System* s1 = System::get_instance();System* s2 = System::get_instance();if (s1 == s2)cout << "singleton!" << endl;return 0;
}

执行结果
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机毕业设计opencv+pytorch疲劳驾驶检测系统 自动驾驶 面部多信息特征融合的疲劳驾驶检测系统 驾驶员疲劳驾驶风险检测 深度学习 机器学习 大数据
  • Educational Codeforces Round 169 (Rated for Div. 2)
  • Java语言程序设计——篇十七(1)
  • verilog中两个常数相除
  • 三、LogicFlow 基础配置介绍及实现一个基础 Demo
  • Vue3 条件语句 8
  • <数据集>Visdrone数据集<目标检测>
  • Python编程:从入门到实践书籍介绍
  • PHP轻创推客集淘客地推任务平台于一体的综合营销平台系统源码
  • Java集合框架--Map
  • MySQL 关系设计详解
  • <数据集>遥感船舶识别数据集<目标检测>
  • 嵌入式系统:全面解读与关键要点
  • Flink CDC Standalone模式部署及Flink CDC Job提交
  • 深入理解 Vue 3 的双向绑定原理与实现
  • C++类中的特殊成员函数
  • dva中组件的懒加载
  • HTTP 简介
  • IDEA常用插件整理
  • Java 网络编程(2):UDP 的使用
  • JavaScript新鲜事·第5期
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Python连接Oracle
  • quasar-framework cnodejs社区
  • text-decoration与color属性
  • 第十八天-企业应用架构模式-基本模式
  • 动态规划入门(以爬楼梯为例)
  • 多线程 start 和 run 方法到底有什么区别?
  • 排序算法之--选择排序
  • 小程序button引导用户授权
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (二)c52学习之旅-简单了解单片机
  • (六)Hibernate的二级缓存
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转载)虚函数剖析
  • (状压dp)uva 10817 Headmaster's Headache
  • ****Linux下Mysql的安装和配置
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET CLR Hosting 简介
  • .net framework4与其client profile版本的区别
  • .NET 中创建支持集合初始化器的类型
  • .NET企业级应用架构设计系列之开场白
  • .NET是什么
  • .考试倒计时43天!来提分啦!
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [ACM] hdu 1201 18岁生日
  • [AIGC codze] Kafka 的 rebalance 机制
  • [BROADCASTING]tensor的扩散机制
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C++][opencv]基于opencv实现photoshop算法图像剪切