在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;
}
测试结果
以上就是一些简单的理解加运用,尽管单例化的方法多样,但是迫在时间,学习了这种最简单使用的方式。