单例模式(补充)

Posted 小河沟大河沟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式(补充)相关的知识,希望对你有一定的参考价值。

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

在使用单例的头文件中先声明: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_ */

 

以上是关于单例模式(补充)的主要内容,如果未能解决你的问题,请参考以下文章

面向对象高级C(元类补充及单例模式(待补充))

设计模式之单例模式

springbean补充:关于bean的属性

常用代码片段

常用代码片段

深层次认知单例模式(Singleton)