设计模式之单例模式

来源:互联网 发布:组态软件 编辑:程序博客网 时间:2024/04/29 15:10
【定义】单例模式(SingleTon),保证一个类仅有一个实例,并提供一个访问它的全局访问点。

【场景】很多exe文件都只允许运行一次,即当你第一个exe打开未关闭之前,再第二次打开,会提示说“已经有一个exe程序在运行了”,如果将这个exe文件看成一个类,则它就是一个单例。

【UML】

【代码】

//下面的代码没有考虑多线程下的锁定#include <iostream>using namespace std;class SingleTon{private:static SingleTon* instance;SingleTon(){}~SingleTon(){delete instance;instance = NULL;}public:static SingleTon* GetInstance(){if(NULL == instance){instance = new SingleTon();}return instance;}};SingleTon* SingleTon::instance = NULL;int main(){SingleTon* s1 = SingleTon::GetInstance();SingleTon* s2 = SingleTon::GetInstance();if(s1 == s2){cout<<"s1和s2是同一个实例"<<endl;}return 0;}

【运行结果】