设计模式-单例模式

单例:保证一个类只能有一个实例,并提供一个全局唯一的访问

有以下特征:

它有一个指向唯一实例的静态指针,并且是私有的;

它有一个公有的函数,可以获取这个唯一的实例,并且在需要的时候创建该实例;

它的构造函数是私有的,这样就不能从别处创建该类的实例。

class DataBase{
private:
    DataBase();
    static DataBase* m_pInstance;
    // 禁止拷贝和赋值
    DataBase(DataBase const &other) = delete;
    DataBase& operator = (DataBase const &other) = delete;
public:
    static DataBase* getInstance();
    static void destory();
};

DataBase* DataBase::m_pInstance = nullptr;
DataBase::DataBase(){}

DataBase* DataBase::getInstance(){
    if(!m_pInstance){
        m_pInstance = new DataBase;
    }
    return m_pInstance;
}
void DataBase::destory(){
    if(m_pInstance){
        delete m_pInstance;
        m_pInstance = nullptr;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值