软件设计模式之单例模式
来源:互联网 发布:高斯混合模型聚类算法 编辑:程序博客网 时间:2024/06/10 22:17
单例模式
概念:单例模式是指一个系统中,一个类只有一个对象的模式,多出要用到这个类时通过类的一个全局访问点来共享类的对象,类的实例化是通过类自身的机制完成,也就是在类里面进行。
实现原理:为了保证整个系统中只有一个对象,可以将类的构造函数设为private型,这样,在类以外就不能用new形式来初始化对象了。因为类只有一个实例化,我们可以采用将类的对象放在类里面并设成private static型,再通过一个公共当问点static成员函数访问对象,这个公共访问点必须拥有一种机制——如果第一次使用需要新实例化一个对象,否则使用之前实例化的对象。
大体可以用下面代码段来描述:
#include<iostream>
usingnamespace std;
class singleClass
{
private:
static singleClass *singleObject;
singleClass(void){}
public:
static singleClass *getObject(void);
};
singleClass* singleClass::singleObject = NULL;
singleClass* singleClass::getObject(void)
{
if(singleObject == NULL)
{
singleObject = new singleClass();
}
return singleObject;
}
int main(void)
{
singleClass *object1 = singleClass::getObject();
singleClass *object2 = singleClass::getObject();
singleClass *object3 = object2->getObject();
//singleClass *object4 = new singleClass(); //错误的方式。
cout<<"object1 addr: 0x"<<object1<<endl;
cout<<"object2 addr: 0x"<<object2<<endl;
cout<<"object3 addr: 0x"<<object3<<endl;
cin.get();
return 0;
}
实用范围:一个学校的信息管理系统,校长类就只有一个实例;windows的任务管、理器也只有一个实例。
操作系统运行期间有一个堆空间,所有进程共享这个堆空间等,都可以用单例模式来实现。
- 软件设计模式之单例模式
- 软件设计模式之单例模式
- 软件设计模式之单例设计模式
- 软件设计模式之单例模式
- [软件设计模式]单例模式
- 软件设计模式- 单例模式
- 软件设计模式之单例模式(JAVA实现)
- Android中使用软件设计模式之观察者模式、Builder模式、单例模式、简单工厂模式
- 单件模式--软件设计模式
- 软件设计中的单例模式开发
- 单例软件设计模式初解
- 软件设计模式——单例模式(Singleton)
- 面向对象软件设计模式(1)--单例模式(Singleton)
- 软件设计模式之观察者模式
- 软件设计模式之命令模式
- 软件设计模式之观察者模式
- 软件设计模式之Singleton模式
- 模式之单例模式
- 答题
- D3D Frustum六个裁剪平面生成原理
- 苹果高管攻击三星和Android:比iPhone差
- 四种强制类型转换
- jQuery Ajax 实例 全解析
- 软件设计模式之单例模式
- 碰撞检测基本完成,方法小结,以备后忘!
- 详细解说User和Group配置文件
- webservice接口简介
- std::string详解
- 字符串组合
- 二路归并算法
- nginx和apache的虚拟目录用ln软连接来做貌似不错
- linux 命令行