概述:
单例模式(Singleton Pattern,也称为单件模式),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。
定义一个单例类:
1.私有化它的构造函数,以防止外界创建单例类的对象;
2.使用类的私有静态指针变量指向类的唯一实例;
3.使用一个公有的静态方法获取该实例。
4.此单例模式也为懒汉式,单例实例在第一次被使用时才进行初始化,这叫做延迟初始化。
.h:
public:
static Singleton* getInstance() ;//3.
private://1.0
Singleton() {};//1.
~Singleton() {};
private:
static Singleton* instance;//2.
.cpp
Singleton* Singleton::instance = NULL;
Singleton *Singleton::getInstance()//4.
{
if(instance == NULL)
instance = new Singleton();
return instance;
}
Singleton::Singleton()
{
}
Singleton::~Singleton()//大家可以考虑个问题析构函数如该如何编写,欢迎在文末评论
{
}
懒汉式存在内存泄露的问题,有两种解决方法:
1.使用智能指针
2.使用静态的嵌套类对象(方法如下)
请听下回分解
over:
欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论!
共同学习!
共同进步!
微信公众号:IT幻想家
以梦为马,不负韵华。