模式简介
单例模式的最根本的目的是,保证一个类在程序的运行的过程中,最多只有一个实例。在某些情况下,单例模式有特别大的优势,比如说数据库的连接池等。
模式的实现
单例模式把构造函数设置为私有类型即可,这样就不能进行拷贝构造等的一些方式。注意,单例模式只能是保证无法赋值等的操作。实现的核心是使类中有一个私有的静态实例,然后通过一个静态的函数获取这个实例。
代码实现
Java代码实现,C++类比即可
#include <iostream>
#include <memory>
class SingLeton {
public:
std::shared_ptr<SingLeton> getInstance() {
if (SingLeton::m_spInstance != nullptr) {
return m_spInstance;
}
return std::make_shared<SingLeton>();
}
private:
static std::shared_ptr<SingLeton> m_spInstance;
};
int main() {
return 0;
}