当前位置: 首页 > 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;
}

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


http://www.mrgr.cn/news/5912.html

相关文章:

  • 128. 最长连续序列
  • 科技大通缩
  • 框架——MyBatis(!!!MyBatis 环境搭建步骤)
  • JAVA设计模式之【单例模式】
  • 一文掌握 Web 测试:功能、界面、兼容与安全的综合测试指南!
  • 【数据分析】数据的离中趋势之一 - 极差、分位距、平均差
  • Jenkins配置SSH凭据
  • CSS的:required和:optional伪类:增强表单字段的视觉识别
  • 【设计模式】建造者模式和单例模式
  • Redis笔记-分布式存储方案中哨兵模式配置
  • oracle数据库缓存区高速缓存区
  • Java导出分类到Excel
  • 从HTTP到HTTPS:SSL加密如何重塑互联网安全格局
  • 机器学习:决策树回归树实现
  • 开发一个免费的图表网站 Free Charts
  • 数据结构-单调栈
  • 视频美颜SDK与直播美颜工具的开发详解与技术优化
  • Llama 3.1 70B与Mistral Large 2 128B深度对比
  • MATLAB CSF布料模拟滤波分类地面点和地物点(71)
  • Tauri简介