在Linux下使用单件Singleton模式

概述:

singleton模式称作单件模式或单例模式。它的作用是确保一个类在整个工程中有且只有一个实例。可以在多个不同的类中很方便的所需要的类的方法。

应用领域:常用在游戏编程和多线程编程中,读取配置文件,写入日志。

原理:

它的构造函数是私有的,你不能去new 它。该单例类里面已经实例化好了一个了,并且是static的,并提供一个获取该实例的方法!客户端只能通过该方法获取这个已经实例化好了的,这样就保证了只有一个实例存在!

1. Singleton.h文件

/*
 * Singleton.h
 */

#ifndef SINGLETON_H_
#define SINGLETON_H_

#include 
namespace GSingleton
{
template  class Singleton
{
protected:
	static T* mSingleton;
private:
	Singleton()
	{
		assert(!mSingleton);
		mSingleton=static_cast< T*>(this);
                cout<<"create Singleton()"<


2. 类SubClass继承并实例化模板类Singleton

/*
 * SubClass.h
 */
#ifndef SUBCLASS_H_
#define SUBCLASS_H_
#include "Singleton.h"
#include 
using namespace std;
class SubClass:public GSingleton::Singleton
{
public:
	SubClass();
	virtual ~SubClass();
	inline void Show()
	{
		static int s=0;
		s++;
		cout<<"s===="< SubClass* GSingleton::Singleton::mSingleton=0;
SubClass::SubClass()
{
}
SubClass::~SubClass()
{
}


3. 使用函数SubClass::Show()

#include "SubClass.h"

SubClass::getSingletonPtr()->Show();

你可能感兴趣的:(在Linux下使用单件Singleton模式)