-
常用的软件设计模式,在它的核心结构中只包含一个被称为单例的特殊类;
-
通过单例模式可以保证系统中只有一个实例且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源
#include "stdafx.h"
#include "stdio.h"
#include <iostream>
using namespace std;
class SingleTone {
private:
SingleTone();//这边设置为私有是不想让外界调到
static SingleTone* instance;//静态的成员指针
public:
static SingleTone* getInstance();
};
SingleTone* SingleTone::instance = 0;//0代表空指针
SingleTone::SingleTone()
{
}
SingleTone* SingleTone::getInstance()
{
if (instance == 0)
instance = new SingleTone();
return instance;
}
int main()
{
SingleTone* instance = SingleTone::getInstance();
printf("instance=%p\n", instance);
instance = SingleTone::getInstance();
printf("instance=%p\n", instance);
instance = SingleTone::getInstance();
printf("instance=%p\n", instance);
return 0;
}
运行结果如下:

无论getInstance多少次,地址都是同一个。
本文介绍了单例设计模式的概念,其核心在于确保系统中只有一个类的实例,并提供全局访问点,有效控制资源使用和实例数量。示例代码展示了C++实现的单例模式,通过getInstance方法保证每次调用返回的都是同一个对象的地址。
2390

被折叠的 条评论
为什么被折叠?



