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_ */
  • 相关阅读:
    JSONHelper
    win pe 修改xp系统开机密码方法
    Microsoft SQL Server 2008 安装图解(Windows 7)
    ORA-00368 ORA-00353 ORA-00312
    Oracle和MSSQL查询有多少张表
    css技巧总结
    保持宽高比的宽度自适应盒子
    css选择器位置和数量技巧
    inline-block元素垂直对齐
    webpack编译vue出现dev警告
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5856464.html
Copyright © 2011-2022 走看看