首页 > 代码库 > 【设计模式】——单例模式
【设计模式】——单例模式
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能访问你实例化多个对象。一个最好的办法,让类自身负责保存它的唯一的实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
#include <iostream>using namespace std;//Singleton类,定义一个GetInstance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例class Singleton{private: //构造方法让其private,这就堵死了外界利用new创建此类实例的可能 Singleton(){} static Singleton* instance;public: //此方法是获得本类实例的唯一全局访问点 static Singleton *GetInstance();};Singleton* Singleton::instance=NULL;Singleton* Singleton::GetInstance(){ if(instance==NULL) instance=new Singleton(); return instance;}int main(){ Singleton *t1=Singleton::GetInstance(); Singleton *t2=Singleton::GetInstance(); if(t1==t2) cout << "两个对象是相同的实例。" << endl; return 0;}
单例模式因为Singleton类封装它的唯一实例,这样它可以严格控制客户怎样访问以及何时访问它。简单地说就是唯一实例的受控访问。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。