zoukankan      html  css  js  c++  java
  • 设计模式之 单例模式

    #include <iostream>
    #include <string>
    using std::cout;
    using std::cin;
    using std::endl;
    using std::string;
    
    /*
    template<class T,  class StaticMutex>
    class SingleInstance
    {
    protected:
        SingleInstance(void){}
        virtual ~SingleInstance(void){}
        T* CreateInstance(void)
        {
            if(!pIns_)
            {
                mutex_.lock();
                if(!pIns_)
                {
                    pIns_ = new T();
                }
                mutex_.unlock();
            }
            return pIns_;
        }
        void destoryInstance()
        {
            if(pIns_)
            {
                delete pIns_;
                pIns_ = NULL;
            }
        }
    private:
        static T *pIns_;
        StaticMutex mutex_;
    };
    */
    
    template<class T>
    class SingleInstance
    {
    protected:
        SingleInstance(void){}
        virtual ~SingleInstance(void){}
        static T* createInstance(void)
        {
            if(!pIns_)
            {
                pIns_ = new T();
            }
            return pIns_;
        }
        void destoryInstance()
        {
            if(pIns_)
            {
                delete pIns_;
                pIns_ = NULL;
            }
        }
    private:
        static T *pIns_;
    };
    
    template<typename T>
    T* SingleInstance<T>::pIns_ = NULL;
    
    class Factory: public SingleInstance<Factory>
    {
    public:
        Factory(void){}
        ~Factory(void){ destoryInstance(); }
        static Factory* instance(void){ return createInstance(); }
    
        void show(){ cout<<"create a factory instance ok"<<endl; }
    };
    
    int main()
    {
        Factory::instance()->show();
        return 0;
    }
  • 相关阅读:
    oracle比较常用的函数
    生成GUID
    字符串操作
    Visual Studio常用快捷键
    c#保存异常日志
    c#的Trim方法
    c#之文件操作
    Python可视化库matplotlib.pyplot里contour与contourf的区别
    python linspace
    神经网络实现连续型变量的回归预测(python)
  • 原文地址:https://www.cnblogs.com/foreverstars/p/4690079.html
Copyright © 2011-2022 走看看