设计模式

本文深入探讨了单例模式的特点和实现方式,强调了单例模式下类只能有一个实例,并且必须由该类自行创建,同时提供了全局访问点。通过具体案例如cocos的导演类CCDirector和图片缓存类CCTextureCache进行说明,展示了如何通过私有构造函数和静态成员函数实现单例模式,避免内存问题。

①单例模式
特点:
1、单例类智能有一个实例对象
2、改单例对象必须由单例类自行创建
3、单例类对外提供一个访问该单例的全局访问点
实现:
1、将构造函数设置为私有的,保证外部不能不能调用构造函数创建对象
2、提供一个静态成员函数,使得外部可以通过该函数获取到单例
案例:
cocos的导演类CCDirector、图片缓存类CCTextureCache等
优点:
简单易用,限制一个类只有一个实例,降低创建多个对象可能引起的内存问题的风险,包括内存泄漏、内存占用的问题

#include <iostream>
using namespace std;
class Test {
private :
	Test() {};
	static Test* instanece;
	int m_x;
public:
	static Test* getInstance();
	int getX();
	void setX(int n);
};
Test* Test::instanece = nullptr;
Test* Test::getInstance() {
	if (instanece == nullptr) {
		instanece = new Test();
		instanece->m_x = 0;
	}
	return instanece;
}
void Test::setX(int n) {
	m_x = n;
}
int Test::getX() {
	return m_x;
}
int main() {
	cout << Test::getInstance()->getX() << endl;//输出0
	Test::getInstance()->setX(100);
	cout << Test::getInstance()->getX() << endl;//输出100
	system("pause");
}

②简单工厂模式

引用文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值