第七十二题(设计一个类,我们只能生成该类的一个实例)
2014-07-08 16:34
246 查看
72. 题目:设计一个类,我们只能生成该类的一个实例。
分析:设计模式中的单例模式,这里给出单例模式的几种情形下的C++实现。
普通的单例模式:
增加删除操作的单例模式:
饿汉模式:
分析:设计模式中的单例模式,这里给出单例模式的几种情形下的C++实现。
普通的单例模式:
class CSingleton { public: static CSingleton* getInstance() { if (mInstance == NULL) mInstance = new CSingleton(); return mInstance; } private: CSingleton(){} static CSingleton* mInstance; };
增加删除操作的单例模式:
class CSingleton { public: static CSingleton* getInstance() { if (mInstance == NULL) mInstance = new CSingleton(); return mInstance; } private: CSingleton(){} static CSingleton* mInstance; private: class Deleter { public: ~Deleter() { delete CSingleton::mInstance; } }; private: static Deleter deleter; };增加锁的单例模式:
class CSingleton { public: static CSingleton* getInstance() { Lock(); if (mInstance == NULL) mInstance = new CSingleton(); unLock(); return mInstance; } private: CSingleton(){} static CSingleton* mInstance; private: class Deleter { public: ~Deleter() { delete CSingleton::mInstance; } }; private: static Deleter deleter; };
饿汉模式:
class SingletonStatic { private: static const SingletonStatic* mInstance; SingletonStatic(){}; public: static const SingletonStatic* getInstance() { return mInstance; } }; const SingletonStatic* SingletonStatic::mInstance = new SingletonStatic();
相关文章推荐
- 设计一个类,我们只能生成该类的一个实例
- 剑指officer第二题:题目:设计一个类,我们只能生成该类的一个实例(五种方法实现)
- 72 题目:设计一个类,我们只能生成该类的一个实例
- 面试题2 设计一个类,我们只能生成该类的一个实例
- 设计一个类,我们只能生成该类的一个实例。
- 设计一个类,我们只能生成该类的一个实例。
- 题目2:Singelton单例模式:设计一个类,只能生成该类的一个实例。
- 设计一个类只能生成该类的一个实例
- 设计一个类,只能生成该类的一个实例
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个类,只能实现1个实例或3个实例
- 单态设计模式--一个类只能创建一个实例(对象)
- java思考题:设计一个只能创建一个唯一实例的类。
- 只能生成一个对象的类(经典设计模式之一)
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个只能创建一个唯一实例的类——单例模式
- C++ 设计一个类,只能生成一个对象
- 剑指OFFER(java)-设计一个只能创建一个唯一实例的类——单例模式
- 让你的程序只能运行一个实例
- 只能产生一个实例