单例模式
来源:互联网 发布:数据库系统基础 编辑:程序博客网 时间:2024/06/04 00:22
看单例模式的例子:
运行结果:
可见调用两次instance()只调用了一次构造函数,只产生了一个对象,指针clienta和clientb存储的是同一个对象的地址。这就是单例模式,通过将类的构造函数设为private,保证只能有一个对象存在。
- C/C++ code
- #include <iostream>class Singleton{private: Singleton(int i=0):val(i){ //构造函数私有 std::cout<<"constructor,member val = "<<val<<std::endl; } int val; static Singleton *ins;public: static Singleton* instance(){ //工厂方法 return ins; } int getVal(){ return val; } void setVal(int i){ val=i; } virtual ~Singleton(){ if(ins){ delete ins; std::cout<<"destructor"<<std::endl; } }};Singleton* Singleton::ins=new Singleton(10);int main(){ Singleton* clienta=Singleton::instance(); Singleton* clientb=Singleton::instance(); std::cout<<"adress clienta: "<<clienta<<std::endl; std::cout<<"adress clientb: "<<clientb<<std::endl; return 0;}
运行结果:
- Perl code
$ g++ -Wall singleton.cpp -o singleton $ ./singleton constructor,member val = 10 adress clienta: 0x804a008 adress clientb: 0x804a008
可见调用两次instance()只调用了一次构造函数,只产生了一个对象,指针clienta和clientb存储的是同一个对象的地址。这就是单例模式,通过将类的构造函数设为private,保证只能有一个对象存在。
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- c++构造函数详解
- 2011Google校园招聘笔试题
- C、C++不定参数的使用
- HDOJ 1879 继续畅通工程
- list加入同一个对象
- 单例模式
- Android UI学习 - Linear Layout, RelativeLayout
- 蝴蝶兰与鳞托菊
- JPQL查询语句(Java Presistence Query Language
- 2012 人民搜索 实习生招聘 笔试题
- OnCtlColor消息的用法
- MMU、ELF的加载、linux的启动
- HDOJ 1875 畅通工程再续
- android 添加新的键值,自定义按键