设计模式--单例模式
来源:互联网 发布:部落冲突咏王升级数据 编辑:程序博客网 时间:2024/06/05 02:04
http://www.runoob.com/design-pattern/singleton-pattern.html
介绍
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数GetInstance。
应用实例:不能不同打印机同时打印一份文件。
注意:
- 1、单例类只能有一个实例。
- 2、单例类必须自己创建自己的唯一实例。
- 3、单例类必须给所有其他对象提供这一实例。
实现
#include <iostream>
using namespace std;
class Singleton
{
//构造函数私有,这样不会被实例化
private:
Singleton(){}
//创建一个对象
static Singleton* instance ;
public:
static Singleton* getInstance();
void show(){ cout<<"lalala";}
};
Singleton * Singleton::instance = NULL;
Singleton* Singleton::getInstance()
{
if (instance == NULL)
{
instance = new Singleton;
}
return instance;
}
using namespace std;
class Singleton
{
//构造函数私有,这样不会被实例化
private:
Singleton(){}
//创建一个对象
static Singleton* instance ;
public:
static Singleton* getInstance();
void show(){ cout<<"lalala";}
};
Singleton * Singleton::instance = NULL;
Singleton* Singleton::getInstance()
{
if (instance == NULL)
{
instance = new Singleton;
}
return instance;
}
#include "singleton.h"
int main()
{
//Singleton* sing1 = new Singleton;
Singleton* sing1 = Singleton::getInstance();
sing1->show();
getchar();
return 0;
}
int main()
{
//Singleton* sing1 = new Singleton;
Singleton* sing1 = Singleton::getInstance();
sing1->show();
getchar();
return 0;
}
0 0
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- JAVA泛型简析
- 读取文本字符串,并生成以字符串命名的txt文件
- spark读取oracle的
- 禁用浏览中的Tab键
- 获得本地IP地址
- 设计模式--单例模式
- Android中什么是ANR?产生的原因,解决办法
- 因为锁等待导致的慢查询不会改变状态变量slow_queries值
- Hibernate在MyEclipse中的部署,连接MySQL数据库
- 在Firefox中通过JavaScript复制到剪贴板(Copy to Clipboard)
- 福州大学第十三届程序设计竞赛_重现总结
- 关于线程的停止、挂起、退出(修改)
- Spring.NET企业架构实践之 Nhibernate + WCF + ASP.NET MVC + NVelocity 对PetShop4.0重构(三)——持久层
- 剑指offer:二叉搜索树的第k个结点