c++ 设计模式之单例模式(简述)

在c++的课程设计中用到了单例模式,在此记录一些理解。


概念理解

首先什么是单例模式呢,大家可以类比计算机中的资源管理器的运行模式,一个计算机一般只有一个系统的资源管理器,而这个资源管理器可以管理多个其他线程。
所以单例模式就是在程序设计中保证一个类只有一个实例化的对象,并且这个对象可以被全局访问。


实现要求

单例模式需要满足:

  • 一个类只有一个实例,即需要将构造方法私有化
  • 在类中自行创建这个实例,即在第一个要求下,需要在类中直接实现。
  • 自行向整个系统提供这个实例

代码设计

类型:局部静态变量

这种实现方式可以避免一个类被实例化多次,在多线程中也是安全的,因为static变量只会初始化一次,而我也是采取这种方式进行实现的,应该算是最好的一种实现方式。

#include<iostream>
using namespace std;
class Singleton{
    
    
private:
	Singleton(){
    
     cout << "Singleton constructed!" << endl;}
	Singleton(const Singleton&)=delete;
    Singleton& operator=(const Singleton&)=delete;
    ~Singleton(){
    
     cout<< "Singleton destructed" << endl;}
public:
	static Singleton& GetInstance() {
    
    
		static Singleton object;
		return object;
	}		
}; 
int main()
{
    
    
	Singleton& instance_1 = Singleton::GetInstance();
    Singleton& instance_2 = Singleton::GetInstance();
    return 0;
}

测试结果在这里插入图片描述


以上就是一些简单的理解加运用,尽管单例化的方法多样,但是迫在时间,学习了这种最简单使用的方式。

猜你喜欢

转载自blog.csdn.net/qq_44116998/article/details/107755607
今日推荐