单例模式
来源:互联网 发布:sql 试图 编辑:程序博客网 时间:2024/05/23 16:16
定义
- 单例模式关注的是如何只创建一个对象的问题。
- 可以通过创建一个唯一的全局变量来搞定,但全局变量这东西是个坏味道,能不用就最好不要用。多线程也有很多风险。
- 单例模式要做的是保证一个类只有一个实例,并提供一个访问它的全局访问点。此对象应是类对象
C++ DEMO实现
#include<iostream>#include<string>using namespace std;class Singleton{ public: static Singleton *GetInstance(){ //if(singleInstance == NULL){ // singleInstance = new Singleton(10); //} return singleInstance; } static void DeleteInstance(){ if(singleInstance != NULL){ delete singleInstance; singleInstance = NULL; } } private: int num; //类对象,私有构造函数 static Singleton *singleInstance; Singleton(int num){ this->num = num; }};Singleton* Singleton::singleInstance = new Singleton(8808);class ConcSingleton:public Singleton{};int main(){ Singleton *s1 = Singleton::GetInstance(); Singleton *s2 = ConcSingleton::GetInstance(); if(s1 == s2){ cout<<"s1 and s2 is the same object!"<<endl; } system("pause"); Singleton::DeleteInstance(); return 0;}
运行结果
一点想法
- 比如日志模块可用单例模式,构造一次,所有其他部分都可使用。全局变量不要用,那么就用单例模式来搞一个类对象
- 多线程的场景没考虑,多线程的场景可以参考下这篇博客:C++设计模式——单例模式
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- 寄存器寻址
- Error:Application and test application id cannot be the same: both are 'com.xxxxxxx' for debugAndroi
- vs2017离线安装并且安装包不占用C盘空间
- 【编程】【leetcode】151. Reverse Words in a String
- codeforces 792A
- 单例模式
- 遗传算法入门到掌握(一)
- [译] Deep Residual Learning for Image Recognition (ResNet)
- Oracle(10)查询语句
- Struts2对值栈中的List便利,格式都正确却遍历不出来数据的问题
- 【C++】Vs2008环境下安装编译boost库
- Android广播接收者详解
- 背包问题变种:将数组分成两部分使得两部分的和的差最小
- JavaWEB之Markdown 编辑器Editor.md集成使用教程