设计模式之单例模式(懒汉式)

概述:

单例模式(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幻想家

以梦为马,不负韵华。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值