声明:本博文篇幅短,适合快速回顾、朝花夕拾,不适合入门详解。
一、概念
通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
二、模式结构图
三、例子
class Leader
{
private:
static Leader * _instance;
private:
Leader();
public:
static Leader * getInstance();
};
Leader * Leader::_instance = NULL;
Leader * Leader::getInstance()
{
if(_instance == NULL)
{
_instance = new Leader();
}
return _instance;
}
四、优缺点
1、优点
a、单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
b、节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
c、因为类控制了实例化过程,所以类可以灵活更改实例化过程。
2、缺点
a、单例模式扩展困难。
b、单例模式在一定程度上与单一职责原则有冲突