设计模式学习(C++实现)3——单例模式
来源:互联网 发布:陈国良院士 知乎 编辑:程序博客网 时间:2024/06/05 19:31
单例模式,顾名思义,设计一个类,在程序的运行过程中只能生成其一个实例,实现要点是将构造函数设为私有的。
//单例模式class SingleObject { SingleObject() {} static SingleObject *instance;public: static SingleObject *getInstance() { if (instance == nullptr) instance = new SingleObject(); return instance; } void showMessage() { cout << "haha" << endl; }};SingleObject *SingleObject::instance = NULL;
这种实现形式被称为懒汉式单例类,还有饿汉式单例类,即在静态区初始化instance,此外在getinstance中加锁可实现线程安全:
//单例模式class SingleObject { SingleObject() {} static SingleObject *instance;public: static SingleObject *getInstance() { lock(); if (instance == nullptr) instance = new SingleObject(); unlock(); return instance; } void showMessage() { cout << "haha" << endl; }};SingleObject *SingleObject::instance = NULL;
此外还有双重加锁形式等多种形式。
阅读全文
0 0
- 设计模式学习(C++实现)3——单例模式
- 设计模式--单例模式 C++实现
- 设计模式——单例模式(c++)
- 设计模式——单例模式(C++)
- 设计模式——单例模式(C++实现)
- AspectJ实现设计模式(六)—单例模式
- AspectJ实现设计模式(六)—单例模式
- 设计模式——单例模式(学习笔记)
- 设计模式学习(Java)——单例模式
- 设计模式学习(一)——单例模式
- 设计模式学习笔记—单例模式(Singleton)
- 设计模式(C++) -----单例模式
- Objective-c 实现单例设计模式
- 设计模式学习(单例模式)
- 设计思想学习—单例模式
- 设计模式—单例设计模式
- 设计模式(3)——单例模式
- 设计模式C++实现——单例模式
- Python文件操作
- hibernate个人总结1
- poj 2318 TOYS
- Ubuntu命令点滴积累
- Android蓝牙开发
- 设计模式学习(C++实现)3——单例模式
- springMVC 中接收前端传递的对象、数组等数据的方式详解
- 透明控件点击事件穿透的解决办法
- git的commit/push/add
- 【数学建模】CUMCM-2016A 系泊系统的设计 解题思路整理
- Gdal库的简单使用及注意事项(C++版本和C#版本)
- hibernate个人总结2
- java开发_""和null的区别
- 九分靠谱的加载反馈框架LoadSir