设计模式之三 ------Singleton
来源:互联网 发布:windows nt是单用户 编辑:程序博客网 时间:2024/06/13 13:27
设计模式之三 ------Singleton
问题:假设我们电脑只有一个打印机,我们用一个类来管理打印机资源,如果像一般的类一样,使用者可以创建多个类的实例,那么势必会造成系统资源的大量浪费,为了达到节约资源的目的,我们需要寻找一个新的方法;
解决方案:
我们在类内创建一个静态的本类指针,初始化的时候为其赋值,以后使用者用的时候,直接放回这个指针就行了;由于使用者调用的是静态方法,不需要类的实例化;
解决方案:
#include<iostream>
using namespace std;
class Singleton{
public:
static Singleton * GetInstance()
{
cout<<"Singleton返回"<<endl;
if(instance !=NULL)
return instance;
else
{
instance=new Singleton();
return instance;
}
}
protected:
Singleton(){}//为了让子类调用,外部却不能调用
private:
static Singleton * instance;
};
Singleton * Singleton::instance=new Singleton;
void main()
{
Singleton * instance=Singleton::GetInstance();
}
- 设计模式之三 ------Singleton
- C++设计模式之三:Singleton Pattern
- 设计模式(三)之Singleton - 单态模式
- 设计模式C++之三(Singleton单例模式)
- C++设计模式之三--Singleton单例模式
- 设计模式之singleton
- 设计模式之Singleton
- 设计模式之singleton
- 设计模式之 Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 设计模式之Singleton
- 练习转义字符
- 我国首次倡导24小时饥饿警醒世人爱粮节粮-24小时饥饿-禁食-世界粮食日
- 10-17
- Mysql Binlog三种格式介绍及分析
- MSSQLSERVER数据库- 事务
- 设计模式之三 ------Singleton
- LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- Java Web应用程序开发_HTTP协议
- 莫言妻子透露想用奖金买房因91平米房三代同住-莫言-买房
- MSSQLSERVER数据库- 使用C#来操作事务
- UCT-RAVE扑克中应用
- ORA-10997: another startup/shutdown operation of this instance in progress解决方法
- Windows核心编程学习笔记(6)--进程详谈1
- iOS中系统自带正则表达式的应用