C++设计模式-单件(Singleton)

目录

C++设计模式-单件(Singleton)

一、意图

二、适用性

三、结构

四、参与者

五、代码


C++设计模式-单件(Singleton)

一、意图

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

二、适用性

  • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
  • 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

三、结构

四、参与者

  • Singleton

定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作。

可能负责创建它自己的唯一实例。

五、代码

cpp 复制代码
#include<iostream>
using namespace std;

class Singleton {
public:
	static Singleton* GetInstance() {
		if (instance == nullptr) {
			instance = new Singleton;
		}
		return instance;
	}
private:
	Singleton(){}
	static Singleton* instance;
};

Singleton* Singleton::instance = nullptr;

int main() {
	Singleton* s1 = Singleton::GetInstance();
	Singleton* s2 = Singleton::GetInstance();

	cout << "s1 address : " << s1 << endl;
	cout << "s2 address : " << s2 << endl;

	return 0;
}
相关推荐
SEO_juper3 分钟前
别再纠结LLMs.txt了!它背后的真相与最佳使用场景,一文讲透。
开发语言·ai·php·数字营销
g***B73820 分钟前
JavaScript在Node.js中的模块系统
开发语言·javascript·node.js
烤麻辣烫35 分钟前
黑马程序员大事件后端概览(表现效果升级版)
java·开发语言·学习·spring·intellij-idea
思密吗喽39 分钟前
宠物商城系统
java·开发语言·vue·毕业设计·springboot·课程设计·宠物
csbysj202043 分钟前
Lua 函数
开发语言
头发还在的女程序员44 分钟前
三天搞定招聘系统!附完整源码
开发语言·python
温轻舟1 小时前
Python自动办公工具06-设置Word文档中表格的格式
开发语言·python·word·自动化工具·温轻舟
p***c9491 小时前
PHP在电商中的电商系统
开发语言·php
Z***25801 小时前
JavaScript在Node.js中的Deno
开发语言·javascript·node.js
a***56062 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang