`

[创建型模式] 单例模式的理解

 
阅读更多


头文件
//SingletonPattern.h

#ifndef SINGLETON_PATTERN_H
#define SINGLETON_PATTERN_H

#include <Windows.h>
#include <string>
using namespace std;

namespace SingletonPattern
{
    // Base Class
    //////////////////////////////////////////////////////////////////////////
    class Singleton
    {
    public:
        static Singleton* GetInstance()
        {
            static Singleton cSingleton;

            return &cSingleton;
        }

    private:
        Singleton();
        virtual ~Singleton();
    };

    //////////////////////////////////////////////////////////////////////////
    void SingletonPattern_Test_A();
    void SingletonPattern_Test_B();

}

#endif

实现
#include "SingletonPattern.h"
#include <iostream>
using namespace std;

namespace SingletonPattern
{

    //////////////////////////////////////////////////////////////////////////
    Singleton::Singleton()
    {
    }
    Singleton::~Singleton()
    {
    }

    //////////////////////////////////////////////////////////////////////////
    void SingletonPattern_Test_A()
    {
        Singleton* pInstance = Singleton::GetInstance();

        cout << "SingletonPattern_Test_A    Instance address:0x" << pInstance << endl;
    }

    void SingletonPattern_Test_B()
    {
        Singleton* pInstance = Singleton::GetInstance();

        cout << "SingletonPattern_Test_B    Instance address:0x" << pInstance << endl;
    }
}

客户端
#include "SingletonPattern.h"

#include <iostream>
using namespace std;
using namespace SingletonPattern;

void main()
{
    SingletonPattern_Test_A();
    SingletonPattern_Test_B();
}

运行结果

分享到:
评论

相关推荐

    设计模式单例模式和工厂模式综合应用

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    设计模式之单例模式(结合工厂模式)

    工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建对象时,我们不会对客户端暴露创建逻辑,而是提供一个接口来让客户端请求特定类型的实例。这样,客户端无需知道具体的产品实现...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    4. **工厂模式**:这是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式抽象了实例化过程,用户无需知道具体类的实现细节,只需调用工厂方法即可获取对象。在Java中,简单工厂、工厂方法和抽象工厂是...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分

    工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪个类。这使得系统可以在不指定具体类的情况下引用抽象。在Java中,工厂模式可以通过定义一个工厂接口和多个实现了该接口的具体...

    设计模式——策略模式 & 单例模式

    单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。这样做的好处在于,当系统只需要一个共享资源时,可以避免多次实例化导致的资源浪费,同时方便对这个唯一实例进行控制和管理。 ...

    工厂模式与单例模式

    其次,单例模式也是一种创建型设计模式,它的特点是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于配置中心、日志记录、线程池等场景,以节省资源并保证全局一致性。单例模式的实现通常有懒汉式、...

    简单工厂,代理模式,单例模式demo

    **单例模式**是另一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。单例模式常用于资源管理,比如日志记录器、线程池或数据库连接。确保单例的存在可以防止资源的过度消耗,同时也方便了全局...

    白话讲解创建型设计模式:单例原型构建

    本文将聚焦于创建型设计模式,特别是单例模式和原型模式,这两种模式在对象的创建方面扮演着重要的角色。 单例模式是一种限制类实例化次数的设计模式,确保在整个应用程序中,一个类只有一个实例存在。这在某些场景...

    设计模式之创建型模式实验.docx

    【设计模式之创建型模式实验】 创建型设计模式主要关注对象的创建,它们提供了一种在不指定具体类的情况下创建对象的方式,增强了系统的灵活性和可扩展性。在本实验中,我们将探讨五种常见的创建型设计模式:简单...

    三种工厂设计模式和两种单例模式

    在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...

    设计模式的工厂模式,单例模式

    **单例模式**也是一种创建型设计模式,但它的目的是控制类的实例化过程,确保一个类只有一个实例,并提供全局访问点。在许多情况下,比如管理共享资源(如数据库连接)或者创建昂贵的对象时,单例模式非常有用。实现...

    设计模式之单例模式Java实现和类设计图

    单例模式是一种创建型设计模式,其核心思想是保证一个类只有一个实例,并提供一个全局访问点。这种模式常用于控制资源的共享,如数据库连接、线程池或配置对象等。在Java中,实现单例模式有多种方法,包括懒汉式...

    单例模式和工厂模式代码

    **工厂模式** 是一种对象创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建对象时不会直接实例化,而是通过调用一个公共的工厂方法来完成。这样做的好处是将对象的创建过程与使用对象的代码...

    常用设计模式特点比如工厂模式、单例模式等等

    工厂模式是一种对象创建型设计模式,它提供了一种创建对象的最佳方式,通过将实例化过程封装在单独的工厂类中,使得客户端代码无需知道具体创建的对象类型。这样做的好处包括提高代码的灵活性、可扩展性和可维护性。...

    设计模式之创建型模式.pdf

    创建型模式包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式等。这些模式各有其特定的应用场景和优势。 首先,单例模式是一种常见的创建型模式,它保证一个类只有一个实例,并提供一个全局访问点。...

    一例读懂设计模式-单例模式、简单工厂模式.zip

    本资源“一例读懂设计模式-单例模式、简单工厂模式.zip”旨在帮助初学者通过实例深入理解这两种重要设计模式:单例模式和简单工厂模式。以下是关于这两个模式的详细讲解。 1. **单例模式**: 单例模式是一种限制类...

Global site tag (gtag.js) - Google Analytics