ڼС
梦回起点
做你害怕做的事,你会发现:不过如此
本站基于WordPress—主题by 设计窝
冀ICP备15003737号
梦回起点
Copyright © 2015-2024 All rights reserved.

单例模式——大话设计模式读书笔记

单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。

下面是单例模式的UML图

单例模式

C++实现代码如下:

/*
 * Copyright (c) 2017 initm.com All rights reserved.
 * 作者: Stupid
 * 描述: 单例模式
 * 完成时间: 2017-11-13 22:28
*/
#include <QCoreApplication>
#include <iostream>
#include <cstdlib>

class Singleton
{
private:
    static Singleton* instance;
    Singleton(){

    }
public:
    static Singleton* GetInstance(){
        if(!instance){
            try{
                instance = new Singleton;
            }catch(std::bad_alloc){
                exit(-1);
            }
        }

        return instance;
    }
};

Singleton* Singleton::instance = nullptr;

int main(int argc, char *argv[])
{
    system("chcp 65001");
    QCoreApplication a(argc, argv);

    Singleton* s1 = Singleton::GetInstance();
    Singleton* s2 = Singleton::GetInstance();
    if(s1 == s2){
        std::cout << "同一个对象" << std::endl;
    }

    return a.exec();
}

单例模式保证全局只有一个该类的对象。

2017-11-13
                         
暂无评论

发表回复