栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

单例设计模式C++

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单例设计模式C++

什么是单例设计模式?

单例模式是一种对象创建型模式,使用单例模式,可以保证一个类只生成一个唯一对象。也就是说,整个程序只能创建一个用单例设计模式设计的类。

单例模式实现步骤

懒汉式:在类中创建对象,并返回静态指针给类外的对象使用


    1:构造函数私有化


    2:提供静态指针


    3:提供静态方法,返回静态指针

饿汉式:在类外创建对象,赋给类中静态指针,作为全局变量使用

为什么要使用单例模式?

1、需要生成唯一序列的环境。

2、需要频繁实例化,然后销毁对象。

3、创建对象时耗时过多或者耗资源过多,但又经常用到的对象。

4、方便资源相互通信的环境。

实际案例:

多线程中网络资源的初始化

回收站机制

任务管理器

应用程序日志管理

..................

#include 
using namespace std;

class SingeleTon {
public:
	static SingeleTon* m_singletop;//	2:提供静态指针

	static SingeleTon* GetSingleTop()//3:提供静态方法,返回静态指针
	{
		if (m_singletop == nullptr) m_singletop = new SingeleTon;
		return m_singletop;
	}
	void TestPrint()
	{
		cout << "测试函数。。。。。" << endl;
	}
protected:
	SingeleTon();	//1:构造函数私有化
	
};

SingeleTon* SingeleTon::m_singletop = nullptr; //饿汉式时,在此处new出对象,作为全局变量使用

SingeleTon::SingeleTon()
{
	cout << "构造对象。。。。。。。。。。。" << endl;
	m_singletop = nullptr;
}

int main()
{
	SingeleTon* p1 = SingeleTon::GetSingleTop();
	SingeleTon* p2 = SingeleTon::GetSingleTop();

	cout << "p1:" <TestPrint();
	p2->TestPrint();

	return 0;
}



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号