一、什么是单例模式?
单例模式是类的设计模式,使用这个模式设计出来的类运行期间最多只有一个实例,为什么是最多呢,因为它有可能整个运行完了都没有创建。
既然单例模式这么常见,那么它有什么优点呢?节省内存(仅有一个对象)加快访问速度(不用频繁创建),缺点在于没有接口,不能继承。
二、单例模式适用场景- 唯一序列号
- WEB计数器
- 创建耗时对象(IO及数据库连接)
要想了解更多,可以看看这个:https://blog.csdn.net/tanyujing/article/details/14160941
三、单例模式的分类单例模式分为两类:
- 预加载型
- 用到再加载型
前者被称为饿汉模式,后者被称为懒汉模式。前者未雨绸缪是一个曾经过过吃不饱穿不暖的日子,所以他总是先创建好,需要时随时都可以拿到,未雨绸缪;后者是一个小康家庭,从来没有过过苦日子,所以他总是用的时候再去创建。个人觉得这两种人呢,都是好人,关键是你对资源的及时性有没有要求。
四、具体实现无论是衣食无忧型的懒汉还是未雨绸缪型的饿汉,首先要满足的条件就是让用户没法构造,在C++里最简单的方法就是让构造函数私有化。
4.1 未雨绸缪型实现class Singleton
{
private:
Singleton(){std::cout
关注
打赏