zoukankan      html  css  js  c++  java
  • 单例模式(补充)

         单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 如果有很多地方需要使用到单例模式,则可以改用宏来简化实现单例模式的编码工作。需要注意的是:该方案为非线程安全!

    在使用单例的头文件中先声明:DECLARE_SINGLETON(classA)

    然后在cpp文件中添加宏:IMPLEMENT_SINGLETON(classA)

    外部调用方法:classA::Instance() 

    /*
     * singleton.h
     *
     *  Created on: May 28, 2015
     *      Author: yanghui
     */
    
    #ifndef SINGLETON_H_
    #define SINGLETON_H_
    
    
    #define DECLARE_SINGLETON(ClassName) 
        private: 
            static ClassName *singleton_; 
        public: 
            static ClassName *GetInstance(); 
            static void ReleaseInstance();
    
    #define IMPLEMENT_SINGLETON(ClassName) 
        ClassName *ClassName::singleton_ = NULL; 
        ClassName *ClassName::GetInstance() { 
            if (singleton_ == NULL) { 
                singleton_ = new ClassName(); 
            } 
            return singleton_; 
        } 
        void ClassName::ReleaseInstance() { 
            if (singleton_ != NULL) { 
                delete singleton_; 
                singleton_ = NULL; 
            } 
        }
    
    #endif /* SINGLETON_H_ */
  • 相关阅读:
    Django搭建环境_初始化
    Python3 获取以及解析json格式
    python遍历目录树删除指定后缀的文件
    redis基础
    Centos7 更换阿里yum源
    Python3 实现带cookie登陆网站--自动
    Python3 requests实现cookie登陆--手动
    Flask中使用Editormd上传图片
    Flask中数据库的多对多关系
    Flask中博客类的Post实现
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5856464.html
Copyright © 2011-2022 走看看