设计模式2-单例模式

来源:互联网 发布:软件开发关注问题 编辑:程序博客网 时间:2024/05/24 06:42

单例模式看起来挺简单的,但我觉得特别实用,尤其是在线程方面应用广泛;
简单的说,单例模式就是系统中只允许产生这个类的一个实例;
单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这个成员函数叫做Instance(),它的返回值是唯一实例的指针。

代码:

#include<iostream>class Singleton{private:    Singleton(){}    static Singleton* p_instance;    class CGarbo//只是为了释放资源    {    public:        ~CGarbo()        {            if(Singleton::p_instance)                delete p_instance;        }    };    static CGarbo garbo;//定义成员为了最后自动调用析构函数public:    static Singleton* getInstance()    {        if(p_instance==NULL)        {            p_instance=new Singleton();        }        return p_instance;    }};int main(){    Singleton *ps1=Singleton::getInstance();    Singleton *ps2=ps1->getInstance();    return 0;}

当然,单例模式还可以根据不同的应用场景进行调整,后续进行讨论…

0 0
原创粉丝点击