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_ */
  • 相关阅读:
    Epoll技术深入学习
    nginx
    epoll案例
    Linux网络编程初步
    链表快速排序(已通过ACM在线评测)
    C++内存管理
    c++11并发语法初步
    数据库与SQL优化笔记(一)
    C++面向对象模型(虚表与虚表指针)
    c++的一些杂项
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5856464.html
Copyright © 2011-2022 走看看