单例模式
需求的提出
在架构设计时,某些类在整个系统生命期中最多只能有一个对象存在(Single Instance)
如何定义一个类,使得这个类最多只能创建一个对象?
要控制类的对象数目,必须对外隐藏构造函数
思路:
将构造函数的访问属性设置为private
定义instance并初始化为NULL
当需要使用对象时,访问instance的值
空值:创建对象,并用instance标记
非空值:返回instance标记的对象
存在的问题
需要使用单例模式时:
必须定义静态成员变量c_instance
必须定义静态成员函数GetInstance()
解决方案
将单例模式相关的代码抽取出来,开发单例类模板。当需要单例类时,直接使用单例类模板。
小结
单例模式是开发中最常用的设计模式之一
单例模式的应用使得一个类最多只有一个对象
可以将单例模式相关的代码抽象成类模板
需要使用单例模式的类直接使用单例模板