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;
}
相关推荐
LeslieChan_专业海外留学服务5 分钟前
美本申请怎么填写课外活动?这些细节值得注意
c++·uni-app·c#·oneapi·cmmi·墨刀
It'sMyGo8 分钟前
javascript手写实现instanceof函数 介绍判断数组的方法
开发语言·javascript·原型模式
程序员阿鹏32 分钟前
HashMap为什么线程不安全?如何实现线程安全
java·开发语言·数据结构·安全·eclipse·intellij-idea
Death20040 分钟前
序列化与反序列化
c语言·c++·qt·c#
猫武士水星1 小时前
分糖果C++
开发语言·c++
景小雨1 小时前
【数据结构与算法】Z算法(扩展KMP)(C++和Python写法)
c++·python·算法
my烂笔头1 小时前
2024版Clion debug无法查看函数内数组内容 解决办法
c语言·c++·clion
菲杰克PhyJack1 小时前
C++中指针和数组相关的运算符优先级
c++
像风一样的男人@2 小时前
python --qt5(webview)/防多开/套壳网页/多次点击激活旧窗口
开发语言·python·qt
_.Switch2 小时前
Python机器学习:数据预处理与清洗的打开方式
开发语言·人工智能·python·深度学习·机器学习·oracle·架构