Singleton模式

原创 2015年07月10日 18:40:33

Singleton模式

Singleton模式是解决怎么创建唯一对象问题的。在面向过程的设计语言中,我们可以通过创建全局对象来实现;在面向对象的设计语言中,也可以这样做,但是除此之外还有更好的解决方法:Singleton模式。

Singleton模式十分简单,用一个static成员变量来记录唯一的对象实例,通过static接口来获取此实例,在类外禁用构造函数防止创建类的实例。

下面是Singleton模式的类图结构:
Singleton模式类图

下面通过一个例子来演示。在例子中有一个data,初始化为0,创建一个实例,之后把data改为10,再创建另外一个实例,可以看到新创建的实例中data仍然为10,且构造函数只运行了一次。

//singleton.h

#ifndef _SINGLETON_H
#define _SINGLETON_H

class Singleton
{
protected:
    Singleton();
public:
    static Singleton* Instance();
    int data;
private:
    static Singleton* _instance;

};

#endif

//singleton.cpp

#include"singleton.h"

#include<iostream>

Singleton* Singleton::_instance = NULL;

Singleton::Singleton()
{
    std::cout << "Singleton Ctor" << std::endl;
    data = 0;
}

Singleton* Singleton::Instance()
{
    if (_instance == NULL)
        _instance = new Singleton();
    return _instance;
}

//main.cpp

#include"singleton.h"

#include<iostream>

int main()
{
    Singleton* s1 = Singleton::Instance();
    std::cout << s1->data << std::endl;

    Singleton* s2 = Singleton::Instance();
    s1->data = 10;
    std::cout << s2->data << std::endl;
    return 0;

}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Singleton模式

单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。 特点: 1,一个类只能有一个实例 2,自己创建这个实例 3,整个系统都要使用这个...

Singleton模式(C++)

转自http://www.cppblog.com/zmllegtui/archive/2008/10/27/65252.htmlclass Singleton{public:    static ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Singleton模式

1、说明     Singleton模式也即单例模式,保证一个类只有一个实例,并为该类提供一个全局访问点。在面向对象和面向过程的设计范式中,定义一个全局变量(对象)能实现这一点。但在遇到纯粹的面向对...

Python singleton模式

在使用 Python 进行程序开发的时候,同样可能会用到 Singleton 模式。最简单的办法是使用一个类属性保存一个实例,然后通过 staticmethod 或 classmethod 获取这个实...

Singleton 模式

Singleton的英文意义是独身,也就是只有一个人,应用在物件导向语言上,通常翻译作单例:单一个实例(Instance)。 很多时候,您会需要Singleton模式,例如印表机管理,您希望程式...

singleton模式

Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。 全局对象和Singleton模式有本质的...

swift (Singleton)模式

(Singleton)模式

Singleton模式

Singleton模式是一种非常简单的设计模式,这种模式很常用也很容易被滥用。当你设计应用程序的时候,经常会遇到某些对象在整个程序的生命周期应该仅有一个实例的情况,比如File System,Grap...

singleton模式

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类 java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。   单...

OO模式-Singleton

讨论一: 既然只有一个类?为什么非要用一个模式来定义?难道就不能用程序员之间的约定又或者使用伟大的设计模式来完成? 1)先来说说全局变量的好处,当定义一个全局变量时,任何一个函数或者一行代码都可以轻松...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)