码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式读书笔记:SINGLETON(单件模式)

时间:2015-06-26 16:21:23      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:设计模式   读书笔记   singleton   单件模式   instance   

意图:
保证一个类仅有一个实例,并提供一个访问它的全局访问点


类图:
技术分享


注意:
1.静态成员变量及静态成员方法
2.使用惰性初始化,它的返回值直到被第一次访问时才创建和保存
3.构造器是受保护的,试图直接实例化Singleton将得到一个编译时的错误信息


实现:

class Singleton {
public:
	virtual ~Singleton() {}
	static Singleton *getInstance(void)
	{
		if (_instance == 0)
			_instance = new Singleton();

		return _instance;
	}

protected:
	Singleton() {}

private:
	static Singleton *_instance;
};

Singleton *Singleton::_instance = 0;


附加:

单件模式是我目前使用最多的设计模式,所以第一个读书笔记就整理它,以前我确实如上面实现那样使用单件模式,但是创建出来的唯一实例在程序正常结束时不会调用析构,万一我想在析构里面做点什么呢?自身创建的实例当然也得不到释放。

后来我就采用这种方法啦,当然你也可以展开宏,单独实现体会返回引用的优势

// 单例模式宏
#define SINGLETON(classname) 	static classname &ins(void) 	{ 		static classname instance; 		return instance; 	}



设计模式读书笔记:SINGLETON(单件模式)

标签:设计模式   读书笔记   singleton   单件模式   instance   

原文地址:http://blog.csdn.net/panshiqu/article/details/46649789

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!