定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
java:
public class Singleton
{
private volatile static Singleton m_singleton = null;
private Singleton()//将构造方法声明为私有类型,为了不让在别处通过new产生新的对象,也不能被子类重写
{
}
public static Singleton getInstance()//通过此函数获取单例对象
{
if (m_singleton == null)
{
synchronized (Singleton.class)//确保此单例模式是线程安全的
{
//保证程序中只有一个实例
if (m_singleton == null)
{
m_singleton = new Singleton();
}
}
}
return m_singleton;
}
}
C++:
class CSingleton
{
private:
CSingleton() //构造函数是私有的
{
}
public:
static CSingleton * GetInstance()
{
static CSingleton instance; //局部静态变量
return &instance;
}
};