设计模式之- 单例模式(Singleton Pattern)

Posted j1ac

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之- 单例模式(Singleton Pattern)相关的知识,希望对你有一定的参考价值。

单例模式

单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。
单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。
C++实现:
#include<iostream>

using namespace std;


class Singleton{
private:
    Singleton(){};//构造函数private,防止外部构造
public:
    static Singleton * instance ;//静态数据类型用来保存唯一单例
    ~Singleton(){
        delete instance;
    }
    static Singleton* getInstance(){
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return  instance;
    }
    void singletonOperation(){
        cout << "singletonOperation" << endl;
    }
};

Singleton * Singleton::instance = NULL;

int main(int argc, char **argv){
    Singleton * sg = Singleton::getInstance();
    sg->singletonOperation();
    return 0;
}

类图:

技术分享图片

单例模式在一些引用语义的对象中使用比较多,用来保证类的对象只能存在一份!

以上是关于设计模式之- 单例模式(Singleton Pattern)的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之单例模式——Singleton

Java设计模式之单例模式(Singleton)

java设计模式之 单例(Singleton)模式

浅析设计模式——创建型模式之Singleton(单例模式)

Android设计模式之单例模式(Singleton Pattern)

设计模式之五:单例模式(Singleton Pattern)