C++设计模式六--SingletonPattern(单件模式)

来源:互联网 发布:mfc socket编程实例 编辑:程序博客网 时间:2024/06/05 06:04

定义

  单件模式确保一个类只有一个实例,并提供一个全局的访问点。

要点

  1)单件模式给我们一个全局的访问点,和全局变量一样的方便,又没有全局变量的缺点。
  2)单件模式可以在需要时才创建,减少对资源的浪费。
  3)单件模式的类的构造器、拷贝构造器、赋值操作符等需要声明为私有的。

示例

Singleton.h

#ifndef SINGLETON_H#define SINGLETON_Hclass Singleton{private:    static Singleton* uniqueInstance;    Singleton();    Singleton(const Singleton&);    Singleton& operator= (const Singleton&);public:    static Singleton* getInstance();    void print();    ~Singleton();  };#endif

Singleton.cpp

#include <iostream>#include "Singleton.h"using namespace std;Singleton* Singleton::uniqueInstance = NULL;Singleton::Singleton(){}Singleton::~Singleton(){    delete uniqueInstance;    uniqueInstance = NULL;}Singleton* Singleton::getInstance(){    if (NULL == uniqueInstance) {        uniqueInstance = new Singleton();    }    return uniqueInstance;}void Singleton::print(){    cout << "I'm Singleton Pattern!" << endl;}

main.cpp

#include <iostream>#include "Singleton.h"using namespace std;int main(){    Singleton* singleton = Singleton::getInstance();    singleton->print();}
原创粉丝点击